我有一個I/O密集型的Java Tomcat應用程序,我想在更現代的集羣環境中執行htmlunit測試。因此我也考慮了docker,它可以通過應用swarm等提供很酷的功能。I/O密集型Java應用程序在有限資源上的Docker上加速
測試針對oracle數據庫運行,並在本地I/O上創建流量。我只對一個問題感到好奇:
當我運行測試時,使用有限資源的產品進行簡單安裝(load15因子在1 CPU系統上高於2),測試執行時間比在相同的環境(有限的資源)上使用測試執行的碼頭化方法。如果有足夠的資源將負載因數保持在1以下(在1 CPU系統上),則普通安裝和dockerized安裝之間的運行時間幾乎相同。
我正在尋找解釋這一點的方法。是關於一些覆蓋文件系統緩存機制?在研究這個問題時,在哪裏看?
確切的答案需要對系統進行全面分析,但如何實現這種情況的一個例子是如果您並行創建大量I/O工作。如果遇到CPU限制,您的I/O將會更加連續,因此速度更快。或者更一般地說:性能降低概況將根據所遇到的瓶頸而變化。 – biziclop