今天为了测试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后保存

操作完成后务必重启,只有重启才能生效!!!
操作完成后务必重启,只有重启才能生效!!!
操作完成后务必重启,只有重启才能生效!!!
在进行十万并发压测时,Jmeter显示近50%的错误率,原因是Windows默认TCP/IP端口限制。错误信息为'java.net.BindException: Address already in use: connect'。解决方法是修改Windows注册表,增加MaxUserPort值至65534,然后重启以生效。

2259

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



