2016-11-08 71 views
0

我使用jmeter HTTP Sampler來測試一系列HTTP請求並選擇「使用KeepAlive」。但是有幾條線程在所有的 請求發送前都與TCP FIN關閉連接。 enter image description hereJmeter在我的測試完成之前關閉連接

如圖所示,172.19.0.101是Jmeter,172.19.0.111是服務器。剩下的請求只能通過一個新的連接發送,並且它們不在會話中。

+0

讓我們知道您正在使用的服務器,以及爲持續連接發送的保持活動超時,connectionTimeout和最大請求​​數配置了什麼值 –

+0

感謝您的幫助。我檢查了配置,既沒有超時也沒有'max'參數集。 Jmeter客戶端斷開計劃,而不是Apache服務器。所以我認爲可能是Jmeter或客戶機上的問題。 – Monochrome

回答

0

它可以是兩方面的原因:

第一個原因 - 超時超時

是否達到(默認值是60秒,配置,如果不配置,它採用了ConnectionTimeout參數在tomcat服務器中的值)。

的Apache的默認連接超時的httpd 1.3和2.0是 短至15秒,僅5秒鐘apache httpd的2.2和 以上

我觀察到請求10後得到的迴應秒(15 - > 29秒),然後再發送FIN信號以終止連接。

參考文獻:

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-timeout
  2. https://en.wikipedia.org/wiki/HTTP_persistent_connection
  3. https://tomcat.apache.org/tomcat-7.0-doc/config/http.html

第二個原因 - '最大' 參數

可能是其達到reques數量可以通過單個持久連接發送。

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-max

集實現在HTTP取樣到HTTPClient4和嘗試。

從JMeter HTTP採樣器文檔。

JMeter設置Connection:keep-alive頭。這對於默認的HTTP實現無法正常工作,因爲連接重用不在用戶控制之下。它可以與Apache HttpComponents HttpClient實現一起工作。

+1

檢查在JMeter.properties文件中爲Keepalive超時配置的值「#httpclient4.idletimeout = 0」。還有connectionTimeout值「#httpclient.timeout = 0」。編輯答案 –

+1

感謝您的幫助。該參數似乎很有用,可以保持一些連接。但是並不是所有的連接都可以,Jmeter客戶端在測試結束之前仍然會主動斷開連接。我會盡力獲得更多信息。 – Monochrome

+0

專注於服務器端和客戶端「Keep-Alive」頭文件,並分析兩者都同意保持持久連接。 –

相關問題