JMeter压力测试报Address already in use: connect错误怎么办?

JMeter压力测试报错 java.net.BindException: Address already in use: connect 怎么办?

原因分析:

这个问题的原因是windows端口被耗尽了(默认1024-5000),而且操作系统要 2~4分钟才会重新释放这些端口,所以可以增加windows的可用端口来解决,windows端口最大数为65535

解决方法:

修改操作系统注册表:

1、cmd中,用regedit命令打开注册表。

2、在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters下,
右击parameters,添加一个新的DWORD,名字为MaxUserPort,然后双击MaxUserPort,输入数值数据为65534,基数选择十进制(如果是分布式运行的话,控制机器和负载机器都需要这样操作哦)。

3、修改配置完毕之后记得重启机器才会生效。

上面这个方法能解决一部分问题。虽然增加了端口数,但压测的时候2分钟内发送超过 70000 个请求,还是报了 Address already in use: connect 的问题。

解决该问题有两种方法,一种是修改Jmeter配置项,一种是修改操作系统注册表:

解决方法一:

修改Jmeter配置项

不勾选 Use KeepAlive ,该配置默认勾选,去掉勾选后,请求就变为短连接。

JMeter压力测试报Address already in use: connect错误怎么办?

解决方法二:

修改操作系统注册表

1、cmd输入:regedit
2、找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTCPIPParameters
3、新建 QWORD值,name:TcpTimedWaitDelay,value:30(十进制)
4、重启系统

JMeter压力测试报Address already in use: connect错误怎么办?



我的回答