我使用jmeter HTTP Sampler来测试一系列HTTP请求并选择"Use KeepAlive" . 但是在所有请求发出之前,一些线程Jmeter关闭了与TCP FIN的连接 .
如图所示,172.19.0.101是Jmeter,172.19.0.111是服务器 . 其余请求只能在新连接中发送,并且它们不在会话中 .
这可能有两个原因:
First reason - timeout
是否达到 timeout (默认值为60秒,可配置 . 如果未配置,则使用tomcat服务器中的connectionTimeout参数值) .
对于Apache httpd 2.2及以上版本,Apache httpd 1.3和2.0的默认连接超时时间仅为15秒,仅为5秒
我观察到请求在发送FIN信号以终止连接之前10秒(15 - > 29秒)后得到响应 .
参考文献:
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
Second reason - 'max' Parameter
可能是它达到了可以在单个持久连接上发送的请求数 .
将HTTP Samplers中的实现设置为HTTPClient4并尝试 .
来自JMeter HTTP Sampler文档 .
JMeter设置Connection:keep-alive标头 . 这与默认的HTTP实现无法正常工作,因为连接重用不在用户控制之下 . 它确实与Apache HttpComponents HttpClient实现一起使用 .
1 回答
这可能有两个原因:
First reason - timeout
是否达到 timeout (默认值为60秒,可配置 . 如果未配置,则使用tomcat服务器中的connectionTimeout参数值) .
我观察到请求在发送FIN信号以终止连接之前10秒(15 - > 29秒)后得到响应 .
参考文献:
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
Second reason - 'max' Parameter
可能是它达到了可以在单个持久连接上发送的请求数 .
将HTTP Samplers中的实现设置为HTTPClient4并尝试 .
来自JMeter HTTP Sampler文档 .