JMeter错误:java.net.BindException: Address already in use: connect

2021年09月10日 21:56
364 阅读
0 评论
0

第一次用JMeter去实施上万并发的测试,结果遇到了滑铁卢,因为并发量较大所以需要多机负载的方式去实现。在确认单机的极限并发人数时遇到了以下错误:java.net.BindException: Address already in use: connect
JMeter错误:java.net.BindException: Address already in use: connect
原因在于windows默认的TCP/IP端口只有1024-5000个,而且释放的话大概需要4分钟才能够将之前占用的端口释放掉,导致当jmeter请求达到一定数量时提示上述错误

解决方式

取消JMeter-HTTP请求Use KeepAlive设置

JMeter错误:java.net.BindException: Address already in use: connect

更改Windows注册表中默认的TCP/IP端口数量

使用cmd输入regedit进入到负载机的注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
JMeter错误:java.net.BindException: Address already in use: connect
Parmeters右键新建DWORD值,命名为MaxUserPort,然后选择十进制并输入数据65534后保存
JMeter错误:java.net.BindException: Address already in use: connect
重新压测后发现到一定时间后还是存在该错误,继续寻找新的方法,突然想起了应该查看下端口占用的情况的,结果发现有大量的TIME_WAIT数据,根据查找结果有说windows下释放端口默认为5分钟,这时间也太长了- – 没办法又找了找更改默认端口时间的答案,在同样的注册表位置新建TcpTimeWaitDelay,值类型DWORD,数值数据为5s
JMeter错误:java.net.BindException: Address already in use: connect
重启测试机,再次进行测试,发现TIME_WAIT数量大幅度的下降,更改有效了。 😯

← 上一篇BurpSuite抓包https协议的方法下一篇 →Windows下查看tcp端口占用、会话命令

评论

评论 (0)

发表评论

😀 😂 😅 😍 😒 😓 😔 😖 😘 😡 😭 😱 😤 😴 😷 😵 😎 👍 👎 👏 🙏 ❤️ 💔 🎉 🎂 🤕 😏 👻