Jmeter执行期间抛出“ socketexception:连接重置”错误

问题描述

我们要实现的目标是500个并发用户。 我们尝试在3台计算机上为100位用户进行测试。而且运行良好,没有任何错误。 当我尝试使用相同数量的计算机为150个或更多用户运行测试时,我开始获得以下响应代码

响应代码:非Http响应代码:java.net.socketException 响应消息:连接重置

我还尝试将计算机数量增加到8台。仍然没有帮助。对于某些请求,响应时间也非常长(156秒)。

当我们检查服务器日志以找出可能导致此问题的原因时,在执行过程中未发现错误日志

我很难找出可能是什么问题。服务器端正在排除是否可能出现问题。

从Jmeter端尝试了以下修复程序:

  1. 增加堆大小
  2. 更改user.properties文件中的重试计数
  3. 在hc.parameters文件中更改Boolean = True
  4. 使用HTTP请求认值将实现更改为HTTPClient4

cpu配置: 英特尔(R)至强(R)cpu E5-2690 v3 @ 2.60 GHz(2个处理器) 5 GB内存 64位操作系统

解决方法

Connection Reset错误表示尝试写入已关闭的套接字失败,在TCP协议级别上,这意味着接收到TCP RST

可能是JMeter过早关闭连接的情况,因为JMeter 5.0的httpclient4.time_to_live属性设置为2000,并且如果您看到的响应时间大于2秒(并且确实如此),则很可能是JMeter在获得完整响应之前正在关闭连接。

您可以尝试将此设置增加到60000,以匹配现代浏览器的默认设置,或者甚至更多,以匹配您的应用程序响应时间(如果您认为3分钟是可以接受的),或者考虑升级到效果更好的JMeter 5.3默认值。

更多信息:Bug 64289