Linux 环境下,TCP: time wait bucket table overflow 问题及解决

############### TCP: time wait bucket table overflow 问题


############### 查询统计网络状态命令
netstat -an | awk '{print $6}' | sort | uniq -c | sort -rn
############### 返回以下结果
    148 ESTABLISHED
     88 TIME_WAIT
     28 CLOSE_WAIT
     14 LISTEN
     10
      4 STREAM
      4 CONNECTED
      3 FIN_WAIT2
      1 I-Node
      1 Foreign
      1 established)
      1 and
      1 8216
      1 8046
      1 7725
      1 6688
      1 6687
      1 6674
      1 128610281

      
############### 有两种可能原因:
1) 处于time wait状态的tcp套接字,超过net.ipv4.tcp_max_tw_buckets限制
2) 申请内存失败,可能原因为内存不足

############### 解决方法:
vi /etc/sysctl.conf
###############  修改下面参数:
net.ipv4.tcp_max_tw_buckets = 50000
调大timewait 的数量

net.ipv4.tcp_fin_timeout = 10  
如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,3你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。

net.ipv4.tcp_tw_recycle= 1   
启用timewait 快速回收

net.ipv4.tcp_tw_reuse = 1    
开启重用,允许将TIME-WAIT sockets 重新用于新的TCP 连接

net.ipv4.tcp_keepalive_time = 15  
当keepalive 启用的时候,TCP 发送keepalive 消息的频度,缺省是2 小时

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天恩软件工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值