Jmeter压力测试报错:java.net.BindException: Address already in use: connect

最近在写搜索接口服务,写完接口进行压力测试,但是在长期线程较高的进行测试时会报如下错误:

排除问题:

首先先查看服务器的日志,发现没有报错。

然后查看nginx数据,发现请求数和测试发出的请求数不一致,服务器接收到的少,就想到丢失请求。

后来经过查找资料了解是windows 机器的问题,

原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。

解决办法(在jmeter所在服务器操作):

1.cmd中输入regedit命令打开注册表;
2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右键Parameters
3.添加一个新的DWORD,名字为MaxUserPort
4.然后双击MaxUserPort,输入数值数据为65534,基数选择十进制;
5.在上述三步骤后再添加TcpTimedWaitDelay,数值为30-300选择十进制。
6.完成以上操作,务必重启机器,问题解决。

解决后的测试结果就不再报错:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容