jmeter压力测试(踩坑)报错:java.net.BindException: Address already in use: connect |
您所在的位置:网站首页 › 压力测试java › jmeter压力测试(踩坑)报错:java.net.BindException: Address already in use: connect |
最近在写搜索接口服务,写完接口进行压力测试,但是在长期线程较高的进行测试时会报如下错误: 排除问题: 首先先查看服务器的日志,发现没有报错。 然后查看nginx数据,发现请求数和测试发出的请求数不一致,服务器接收到的少,就想到丢失请求。 后来经过查找资料了解是windows 机器的问题, 原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。 解决办法(在jmeter所在服务器操作): 1.cmd中输入regedit命令打开注册表; 2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右键Parameters; 3.添加一个新的DWORD,名字为MaxUserPort; 4.然后双击MaxUserPort,输入数值数据为65534,基数选择十进制; 5.完成以上操作,务必重启机器,问题解决。 解决后的测试结果就不再报错: 补充:我在修改上述问题后可以进行正常测试,但是过了两天增加线程数后又出现同样的问题,进行以下配置会正常进行测试。 在上述三步骤后再添加TcpTimedWaitDelay,数值为30-300 选择十进制。 同样还是需要重新启动电脑。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |