我们要实现的目标是500个并发用户。 我们尝试对 3 台机器上的 100 个用户进行测试。而且它运行得很好,没有任何错误。 当我尝试使用相同数量的机器对 150 个或更多用户运行测试时,我开始收到以下响应代码
响应代码:非 Http 响应代码:java.net.socketException 响应消息:连接重置
我也尝试过将机器数量增加到8台机器。但这仍然没有帮助。对于某些请求,响应时间也非常长(156 秒)。
当我们检查服务器日志以找出可能导致此问题的原因时,在执行期间未发现错误日志。
我很难找出问题所在。服务器端正在排除其端是否存在问题。
从 Jmeter 端尝试了以下修复:
CPU配置: Intel (R) Xeon(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,它具有更好的默认值。
更多信息:错误 64289