JMeter并发测试遇到Socket closed错误解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter并发测试遇到Socket closed错误解决方案相关的知识,希望对你有一定的参考价值。

参考技术A 最近在用 JMeter 测试服务的性能,并发测试的时候,当线程数超过500,就会出现 socket closed 的错误,在网上查阅了一番资料之后,找到了下面的解决方案:

怎么在Windows上配置,找了几种方式都不行,最后在 git bash 里执行了linux 下的命令,也可以查看和修改

查看默认限制数配置:

可以看到我的电脑上默认的文件数是 256,下面我们来修改默认文件数

-n 后面的参数就是要指定的大小,可以根据自己的电脑的配置进行调整,配置好的可以改的更大一些

如果上面执行完没有报错,然后在执行 ulimit -a 查看配置就会发现文件数已经修改为了指定值,如果有报错可能就是数值设置的太大了,可以调整一下,需要是 2 的指数(如256,512,1024,2048,4096...)

问题原因:在JMeter下,发送http 请求时,一般都是默认选择了 use keepAlive ,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。

解决办法:修改 jmeter.properties 中的 httpclient4.idletimeout=<time in ms> 设置成自己觉得合理的时间,一般可设置成10-60s(表示连接空闲10s后才会断开),注意这边单位是ms。

以上是关于JMeter并发测试遇到Socket closed错误解决方案的主要内容,如果未能解决你的问题,请参考以下文章

socket 编程实例

jmeter测试文件上传接口报错:connection reset by peer: socket write error

10_jmeter压测时jmeter报错socket closed

soapui可以测试socket接口吗

详解Jmeter分布式测试配置以及过程中遇到的坑

jmeter压测时出现socket close关闭的问题