jmeter测试时出现异常 java.net.BindException: Address already in use: connect 导致测试结果不准确

jmeter测试时出现异常 java.net.BindException: Address already in use: connect 导致测试结果不准确,第1张

jmeter测试时出现异常 java.net.BindException: Address already in use: connect 导致测试结果不准确

 

问题原因:

Windows 部分版本 提供给 TCP/IP 默认的链接端口范围为 1024-5000, 并且默认需要4分钟来释放端口,压力测试时,短时间内系统有大量的客户端发起连接,导致系统端口占满。

我现在的机器默认端口是足够了,但是一直没有释放端口, 需要修改下默认释放端口的时间,否则你要一直等端口释放了才能继续测试。

来看看 microsoft 给出的解决方案:参考连接

错误 WSAENOBUFS (10055) - Windows Client | Microsoft Docs

在"适用"部分中包含的产品中,临时 TCP 端口的默认最大数量为 5000。 这些产品中添加了一个新参数。 若要增加临时端口的最大数量,请按照以下步骤 *** 作:

  1. 启动注册表编辑器。
  2. 在注册表中查找以下子项,然后单击"**参数":

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

  1. 在" 编辑" 菜单上,单击 "新建",然后添加以下注册表项:

值名称:MaxUserPort

值类型:DWORD 值数据:65534 有效范围:5000-65534 (decimal) Default: 0x1388 (5000 decimal) Description: This parameter controls the maximum port number that is used when a program requests any available user port from the system. 通常,在 1024 (5000(包含 1024 和 5000)之间分配临时) 短期端口。 在安全公告 MS08-037 发布后,Windows Server 2003 的行为更改为与 Windows Server 2008 和 Windows Vista 的行为更加匹配

具体 *** 作如下:

1. 进入注册表

2. 找到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

 

3. 右键点击 Parameters 新建 DWROD,命名为 MaxUserPort

4. 设置 MaxUserPort 的值 最大值为 65534

 

5. 新建 DWORD TCPTimedWaitDelay 值设置为 20 (参考 步骤 3和4 的新建和设置做法)

可以重用关闭的端口之前等待的时间,设置为20s,也就是如果某个端口关闭了,等待20s就可以重用该端口

 

6. 重启机器

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存