Jmeter在我的测试完成之前关闭连接
我使用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信号以终止连接。
参考文献:
- https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-timeout
- https://en.wikipedia.org/wiki/HTTP_persistent_connection
- https://tomcat.apache.org/tomcat-7.0-doc/config/http.html
第二个原因 - '最大' 参数
可能是其达到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