JMeter压测报“java.net.BindException: Address already in use: connect”
之前在windows机上用JMeter压测,写完接口压测,但是在长期线程较高的进行测试时会报如下错误:50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误。
从字面的意思看,是地址被占用了。
查资料才知道是windows本身提供的端口数量有限制。导致接口请求时,端口被占用;
原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。
解决步骤:
1、cmd中,用regedit命令打开注册表
2、在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3、右键Parameters
4、添加新的DWORD,名字为MaxUserPort和TcpTimedWaitDelay
5、分别输入数值数据为65534和30,基数选择十进制;以增大可分配的tcp连接端口数、减小处于TIME_WAIT状态的连接的生存时间
6、修改配置完毕之后记得重启机器才会生效