使用JMeter测试时,当线程数超过500,就会出现 socket closed 的错误。
解决方式。
使用git bash 运行命令ulimit -a可以看到open files等于256,也就是我运行JMeter的机器,最大文件句柄数是256。
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 2036
cpu time (seconds, -t) unlimited
max user processes (-u) 256
virtual memory (kbytes, -v) unlimited
使用命令 ulimit -n 2048 修改为2048。再使用命令ulimit -a查看:
$ ulimit -n 2048
Administrator@KXPIR1TCDAFMGVY MINGW64 ~/Desktop
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 2036
cpu time (seconds, -t) unlimited
max user processes (-u) 256
virtual memory (kbytes, -v) unlimited
本文介绍了解决JMeter在进行高并发测试时遇到的SocketClosed错误的方法。当线程数超过500时,由于机器的最大文件句柄数限制(默认256),JMeter会报错。通过使用ulimit命令将openfiles参数从256增加到2048,可以有效解决此问题,从而提高JMeter的并发测试能力。

被折叠的 条评论
为什么被折叠?



