Jmeter压测报java.net.BindException: Address already in use: connect
问题背景 单机压测并发过高报错,初步判定结果,Windows系统提供给TCP/IP连接端口为 1024~5000,且要4分钟内来回循环回收,从而导致短时间内跑大量的请求端口被占满,导致如下错误
解决方法(在jmeter安装的主机操作)
1.打开注册表(cmd输入regedit)
2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右键Parameters;
3.新建一个DWORD并命名MaxUserPort
4.双击MaxUserPort设置数值数据为65534,基数选择十进制
5.重启电脑
6.上述操作假如还 没解决就取消勾选jmeter 取样器中的KeepAlive
keppAlive默认勾选,勾选就是长连接,取消勾选就是短连接
长连接:一个tcp连接上可以连续发送多个数据包,在tcp连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持(不发生RST包和四次挥手)
ps:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接(一个TCP连接通道多个读写通信)
短连接:短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接(管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段)
ps:连接→数据传输→关闭连接;
长连接与连接参考博文