jmeter并发超500报错(SocketException: Socket closed ,Connection reset、NoHttpResponseException等)解决方案

    jmeter接口压测并发500以下时正常,一旦设置600或更多时接口报错,且并发数量越大,错误率越高,为此在网上找了一大堆解决方案,均未能正常解决。最后通过自己查找日志及资料完美解决!!!

为了防止不提供原网址的转载,特在这里加上原文链接:
https://blog.csdn.net/hangzhang_joker/article/details/120456864?spm=1001.2014.3001.5501

网上解决方案

1. SocketException: Socket closed
错误的原因通常是 未设置连接的超时时间。
如果在 HTTP Request Sampler 的 Basic 里勾选了Use KeepAlive,那么建议在 Advanced 页签下:
Implementation 选为 HttpClient4
Timeouts 中的 Connect 一般设置一个10~60秒的值,表示连接的空闲超时时间,避免由于没收到被压测端的响应回来的 Keep-Alive 的 Header 导致的连接断开,填写为:15000s

通过上述方法设置后,再次压测,还是会出现这个错误
找到jmeter安装路径D:\jmeter\apache-jmeter-5.4.1\bin下的jmeter.properties
将httpclient4.retrycount=0 改为 =1
参考链接https://cwiki.apache.org/confluence/display/jmeter/JMeterSocketClosed?spm=a2c4g.11186623.2.16.41ff41eaJzLjlR
修改后测试仍然无效

2.SocketException: Connection reset
3.Non HTTP response message: Connect to 1.117.178.121:80 [/1.117.178.121] failed: connect timed out

4…NoHttpResponseException: The target server failed to respond
找到jmeter安装路径D:\jmeter\apache-jmeter-5.4.1\bin下的jmeter.properties,
设置httpclient4.idletimeout=

不出意外修改后测试仍然无效

最后

万事还得靠自己

查找nginx日志 : tail -f /var/log/nginx/error.log
发现如下报错:
在这里插入图片描述
查找资料,了解到为nginx配置项中的worker_connections 最大数量限制

修改配置:vi /etc/nginx/nginx.conf
在这里插入图片描述
修改为10240
重启nginx:
cd /usr/sbin/
./nginx -s reload

完美解决,然而随着并发量增大,发现并发量超过1000时又开始报错

最后查看docker报错,开发修改数据库连接和超时设置,完美跑到5000并发

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值