Jmeter,压力测试nginx【Cannot assign requested address】

环境信息:CenterOS,服务器配置2C4G

问题描述:在压测时,发现错误率很高,查看报错日志提示: Cannot assign requested address【程序对外建立新连接,结果本地端口全部用完导致的异常】

问题分析:由于客户端频繁的连服务器,虽然socket正常关闭,但端口未立即释放,而是会等待60s后释放,导致很多的TIME_WAIT(通过netstat查看),以至于用光了客户端可用的端口号,导致建立新连接时无可用端口,即“Cannot assign requested address”,是客户端的问题不是服务器端的问题。

解决方案:

1、内核参数优化,修改客户端系统内核参数:(需要root权限)

打开配置文件vim /etc/sysctl.conf:在/etc/sysctl.conf文件中加入下列4行参数

net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

备注:

net.ipv4.ip_local_port_range = 1024 65535 #设置本地端口范围从1024~65535,共6W+个端口;

net.ipv4.tcp_max_tw_buckets = 5000 #所允许time_wait的最大数,超过则立刻被清除且警告;

net.ipv4.tcp_tw_reuse = 1 #开启tcp_tw重用,允许将TIME-WAIT sockets重新用于新的TCP连接(默认为0,表示关闭);

net.ipv4.tcp_tw_recycle = 1 #开启tcp_tw快速回收,TCP连接中TIME-WAIT sockets的快速回收(默认为0,表示关闭);

2、运行sysctl -p,让内核参数立即生效

————————————————

版权声明:本文为CSDN博主「福多多的福」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Moonlight_16/article/details/121953688

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值