今天为了测试Hyper连接池的性能,用了十万并发进行压测,项目倒是没报错,Jmeter却显示有近乎一半的错误率,查看了Jmeter的日志,才发现了错误。
报错内容
java.net.BindException: Address already in use: connect
报错原因
原因在于windows默认的TCP/IP端口只有1024-5000个,而且释放的话大概需要4分钟才能够将之前占用的端口释放掉,导致当jmeter请求达到一定数量时提示上述错误
解决办法
更改Windows注册表中默认的TCP/IP端口数量
使用cmd输入regedit进入到负载机的注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在Services目录下:
在Parmeters右键新建DWORD值,命名为MaxUserPort,然后选择十进制并输入数据65534后保存
操作完成后务必重启,只有重启才能生效!!!
操作完成后务必重启,只有重启才能生效!!!
操作完成后务必重启,只有重启才能生效!!!