這與JMeter的循環計數行爲有關。JMeter的循環計數行爲
我第一次使用JMeter來加載測試我的新Web應用程序。
首先我配置了JMeter來訪問一個簡單的xhtml頁面(home.xhtml)。
Load configuration in JMeter:
Number of threads (users): 100
Ramp-Up period (in seconds): 1
Loop count: 100
通過上述配置,我試圖模擬100 users
訪問主頁URL各100次。我預計這會模擬100個不同的用戶打開100個瀏覽器窗口並且每個用戶訪問每個with the same browser window
的URL 100次的測試條件。所以,這應該理想地僅創建100個會話。但在測試結束時的堆轉儲中,我注意到有10,000(100 x 100)個會話對象。
會話實例的類:org.apache.catalina.session.StandardSession
此行爲導致堆出在較高負荷的Tomcat的JVM內存不足的錯誤(比如1000個用戶提供的1000循環計數)。在我的測試過程中,堆的老一代(使用JDK附帶的VisualGC工具進行監控)持續增長,最終導致內存不足。
使用的軟件:
Tomcat 7.0.47
JSF 2.2 (Mojarra 2.1.6)
PrimeFaces 4.0
JMeter 2.11 (To create the load)
VisualVM (To monitor memory consumption & take heap dump)
Eclipse Memory Analysis Tool (MAT) 1.3 – Used to analyse the heap.
從堆分析我的推斷:由於我在人堆裏看萬分會話的情況下,我推斷JMeter是模擬1萬個用戶與我上面的配置,而不是模擬100個用戶每個訪問100個URL。
問題:JMeter的這個循環計數行爲是預期還是我缺少某些東西?
+1它的工作,謝謝一堆! – PhantomReference