解决Windows jmeter Non HTTP response message: Address already in use: connect 错误
jMeter报错:
Response code: Non HTTP response code: java.net.BindException
Response message: Non HTTP response message: Address already in use: connect
原因:
When an HTTP request is made, an ephemeral port is allocated for the TCP / IP connection. The ephemeral port range is 32678 – 61000. After the client closes the connection, the connection is placed in the TIME-WAIT state for 60 seconds.
If JMeter (HttpClient) is sending thousands of HTTP requests per second and creating new TCP / IP connections, the system will run out of available ephemeral ports for allocation.
Otherwise, the following messages may appear in the JMeter JTL files:
Non HTTP response code: java.net.BindException
Non HTTP response message: Address already in use
The solution is to enable fast recycling TIME_WAIT sockets.
就是处于等待的60s的临时端口不够用了,解决方法就是降低TIME_WAIT时间
方法:
打开注册列表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
右击Parameters -> 新建 -> DWORD(32位)值(D) -> name:TcpTimedWaitDe,value:30 –> 设置为30秒,默认是240秒
右击Parameters -> 新建 -> DWORD(32位)值(D) -> name:MaxUserPort,value:65534(十进制) –> 设置最大连接数65534
最后重启电脑
本文详细介绍了在使用JMeter进行高并发性能测试时遇到的“Address already in use”错误,解释了该错误产生的原因,即系统耗尽可用的临时端口。文中提供了解决方案,通过调整Windows注册表中的TcpTimedWaitDelay和MaxUserPort值,以减少TIME_WAIT状态的持续时间和增加最大连接数,从而有效避免端口耗尽的情况。
2911

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



