我们要实现的目标是 500 个并发用户。
我们尝试对 3 台机器上的 100 个用户进行测试。而且它运行得很好,没有任何错误。
当我尝试使用相同数量的机器对 150 个或更多用户运行测试时,我开始收到以下响应代码
响应代码:非 Http 响应代码:java.net.socketException
响应消息:连接重置
我也尝试过将机器数量增加到8台机器。但这仍然没有帮助。对于某些请求,响应时间也非常长(156 秒)。
当我们检查服务器日志以找出可能导致此问题的原因时,没有找到错误日志执行期间在那里。
我很难找出可能出现的问题。服务器端正在排除其端是否存在问题。
从 Jmeter 端尝试了以下修复:
- 增加堆大小
- 更改 user.properties 文件中的重试次数
- 在 hc.parameters 文件中更改 Boolean=True
- 使用 HTTP Request Defaulters 将实现更改为 HTTPClient4
中央处理器配置:
Intel (R) Xeon(R) CPU E5-2690 v3 @ 2.60 GHz(2 个处理器)
5 GB 内存
64位操作系统
The Connection Reset
错误意味着尝试写入已关闭的套接字失败,在 TCP 协议级别上,这意味着接收到TCP RST https://www.pico.net/kb/what-is-a-tcp-reset-rst
JMeter 可能会像 JMeter 5.0 那样过早关闭连接httpclient4.time_to_live
属性设置为2000
如果您看到响应时间 > 2 秒(并且确实如此),很可能 JMeter 在获得完整响应之前关闭了连接。
您可以尝试增加此设置60000
匹配现代浏览器的默认设置,甚至更多以匹配您的应用程序响应时间(如果您认为 3 分钟可以接受)或考虑升级到JMeter 5.3 https://www.blazemeter.com/blog/whats-new-in-jmeter-5.3/哪个有更好的默认值。
更多信息:错误 64289 https://bz.apache.org/bugzilla/show_bug.cgi?id=64289
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)