我使用jmeter HTTP Sampler來測試一系列HTTP請求並選擇「使用KeepAlive」。但是有幾條線程在所有的 請求發送前都與TCP FIN關閉連接。 Jmeter在我的測試完成之前關閉連接
如圖所示,172.19.0.101是Jmeter,172.19.0.111是服務器。剩下的請求只能通過一個新的連接發送,並且它們不在會話中。
我使用jmeter HTTP Sampler來測試一系列HTTP請求並選擇「使用KeepAlive」。但是有幾條線程在所有的 請求發送前都與TCP FIN關閉連接。 Jmeter在我的測試完成之前關閉連接
如圖所示,172.19.0.101是Jmeter,172.19.0.111是服務器。剩下的請求只能通過一個新的連接發送,並且它們不在會話中。
它可以是兩方面的原因:
第一個原因 - 超時超時
是否達到(默認值是60秒,配置,如果不配置,它採用了ConnectionTimeout參數在tomcat服務器中的值)。
的Apache的默認連接超時的httpd 1.3和2.0是 短至15秒,僅5秒鐘apache httpd的2.2和 以上
我觀察到請求10後得到的迴應秒(15 - > 29秒),然後再發送FIN信號以終止連接。
參考文獻:
第二個原因 - '最大' 參數
可能是其達到reques數量可以通過單個持久連接發送。
集實現在HTTP取樣到HTTPClient4和嘗試。
從JMeter HTTP採樣器文檔。
JMeter設置Connection:keep-alive頭。這對於默認的HTTP實現無法正常工作,因爲連接重用不在用戶控制之下。它可以與Apache HttpComponents HttpClient實現一起工作。
檢查在JMeter.properties文件中爲Keepalive超時配置的值「#httpclient4.idletimeout = 0」。還有connectionTimeout值「#httpclient.timeout = 0」。編輯答案 –
感謝您的幫助。該參數似乎很有用,可以保持一些連接。但是並不是所有的連接都可以,Jmeter客戶端在測試結束之前仍然會主動斷開連接。我會盡力獲得更多信息。 – Monochrome
專注於服務器端和客戶端「Keep-Alive」頭文件,並分析兩者都同意保持持久連接。 –
讓我們知道您正在使用的服務器,以及爲持續連接發送的保持活動超時,connectionTimeout和最大請求數配置了什麼值 –
感謝您的幫助。我檢查了配置,既沒有超時也沒有'max'參數集。 Jmeter客戶端斷開計劃,而不是Apache服務器。所以我認爲可能是Jmeter或客戶機上的問題。 – Monochrome