Jmeter测试出现端口占用情况
Jmeter测试会出现端口占用情况
这边在这里做个记录,每次都要百度查询,刚好需要整理下,我就也记录一份到这里吧。感谢大佬的文章。
因Windows环境下的Jmeter测试时,往往会大量出现“端口占用”情况,所以需要去注册表修改一些参数。
原因分析:
windows 环境下的端口循环回收需要消耗2~4分钟。由此猜测可能是由于 windows下压测端口数有限,端口资源被占满,没有及时循环回收,导致报错)windows下的端口Time_Wati导致端口无法使用
Close_Wait会占用一个连接,网络可用连接小。当数量过多时,可能会引起网络性能下降,并占用系统非换页内存。尤其是在有连接池的情况下,比如HttpRequest,会耗尽连接池的网络连接数,导致无法建立网络连接。
CLOSE_WAIT产生原因:
一般情况下因为TCP连接没有调用关闭方法,需要应用来处理网络链接关闭。如果是Web请求,经常因为Response的BodyStream没有调用Close。TCP的KeepAlive功能,操作系统默认7200秒(2小时)自动清理一次CLOSE_WAIT的连接,满足不了高并发下的端口需求数。
解决方案:
l 扩大端口数量;
l 缩短TIME_WAIT的等待时间,提高端口的使用率;
l 配置合理的Keepalive参数
注册表目录:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
右键新建参数(DWORD),并设置值。
l MaxUserPort 十进制 65534
l TcpTimedWaitDelay 十进制 30
l KeepAliveTime 006ddd00
l KeepAliveInterval 000003e8
l MaxDataRetries 5