206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
为什么/var/log/messages日志中会出现“Time wait bucket table overflow”错误信息?

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

问题现象

Linux系统的ECS实例中,/var/log/messages日志中频繁出现“kernel: TCP: time wait bucket table overflow”错误信息。

 
Feb 18 12:28:38 i-*** kernel: TCP: time wait bucket table overflow
Feb 18 12:28:44 i-*** kernel: printk: 227 messages suppressed.
Feb 18 12:28:44 i-*** kernel: TCP: time wait bucket table overflow
Feb 18 12:28:52 i-*** kernel: printk: 121 messages suppressed.
Feb 18 12:28:52 i-*** kernel: TCP: time wait bucket table overflow
Feb 18 12:28:53 i-*** kernel: printk: 351 messages suppressed.
Feb 18 12:28:53 i-*** kernel: TCP: time wait bucket table overflow
Feb 18 12:28:59 i-*** kernel: printk: 319 messages suppressed.

问题原因

net.ipv4.tcp_max_tw_buckets参数用于调整内核中管理TIME_WAIT状态的数量,当ECS实例中处于TIME_WAIT状态的连接数,加上需要转换为TIME_WAIT状态的连接数之和超过net.ipv4.tcp_max_tw_buckets参数值时,/var/log/messages日志中就会出现“kernel: TCP: time wait bucket table overflow”错误信息,此时,系统内核将会关闭超出参数值的部分TCP连接。

解决方案

您可以根据实际情况适当调高net.ipv4.tcp_max_tw_buckets参数值,同时,建议您从业务层面去改进TCP连接。本文介绍如何修改net.ipv4.tcp_max_tw_buckets参数值。

  1. 使用VNC远程连接实例。

    具体操作,请参见通过密码认证登录Linux实例。

  2. 执行以下命令,查看TCP连接数。

     
    netstat -antp | awk 'NR>2 {print $6}' | sort | uniq -c

    显示如下,表示处于TIME_WAIT状态的连接数为6300。

     
    6300 TIME_WAIT
     40 LISTEN
     20 ESTABLISHED
     20 CONNECTED
  3. 执行如下命令,查看net.ipv4.tcp_max_tw_buckets参数值。

     
    cat /etc/sysctl.conf | grep net.ipv4.tcp_max_tw_buckets

    显示如下所示,表示net.ipv4.tcp_max_tw_buckets参数值为20000。

    2023-04-02_11-03-24

  4. 修改net.ipv4.tcp_max_tw_buckets参数值。

    1. 执行以下命令,打开/etc/sysctl.conf文件。

       
      vi /etc/sysctl.conf
    2. i键进入编辑模式。

    3. 修改net.ipv4.tcp_max_tw_buckets参数值。

      例如,将net.ipv4.tcp_max_tw_buckets参数值修改为65535

       
      net.ipv4.tcp_max_tw_buckets = 65535
    4. Esc键,输入:wq,保存并退出编辑。

  5. 执行如下命令,使配置生效。

     
    sysctl -p


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!