性能测试出现:java.net.NoRouteToHostException: Can‘t assign requested address (Address not available)解决方案


前言

在性能测试中会常常遇到java.net.NoRouteToHostException: Can’t assign requested address (Address not available)这个问题,什么原因导致的呢?
这个原因不一定是服务器的原因,还可能是本机的问题。

一、问题报错

出现这个问题是由于liunx 分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放,而是处于 TIME_WAIT 状态,默认等待60s后释放。
在这里插入图片描述
1、查看端口连接数量:netstat -nat | grep -i “TCP” | wc -l
在这里插入图片描述

2、查看linux支持的端口范围
cat /proc/sys/net/ipv4/ip_local_port_range
在这里插入图片描述

二、调优方案

1.扩大端口范围

修改注册表:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
添加 MaxUserPort 十进制 65534
添加TcpTimedWaitDelay 十进制 30
重启系统

  linux,如果你的发起方是Linux

    sysctl -a |grep net.ipv4.ip_local_port_range

    net.ipv4.ip_local_port_range = 32768    60999  =====2.8w

     改端口范围: 

      ```
      sysctl -w net.ipv4.ip_local_port_range="1024 65535"
      sysctl -p
      ```

2.缩短端口占用范围—短连接

在这里插入图片描述

jmeter中去掉keepalive,可能还会报错,只不过延长了报错时间。不能解决问题
结果:我的未报错
在这里插入图片描述


总结

遇到连接被拒问题,要么修改端口范围,要么改为短连接。如果上述方法还报错,可能是目标端口出现问题了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姑娘别秃头

你的鼓励是为我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值