Linux服务器的message日志报“kernel: TCP: time wait bucket table overflowt”错

问题描述

  • 通过云服务器ECS使用ping命令测试外部IP,发现存在丢包,ping出现如下错误。
    ping: sendmsg: Operation not permitted
  • 同时,查询服务器的/var/log/message日志,发现大量类似如下错误信息。|
    Aug  4 17:25:37 static1 kernel: TCP: time wait bucket table overflow

问题原因

系统TCP TIME WAIT溢出。

解决方案

  1. 通过如下命令,可以统计当前的TCP连接数。
    netstat -anp |grep tcp |wc -l
  2. 对比/etc/sysctl.conf配置文件中参数net.ipv4.tcp_max_tw_buckets值,看是否有超出情况。
  3. 如果确认已经超出,则可以编辑/etc/sysctl.conf配置文件,根据系统规格,适当调大net.ipv4.tcp_max_tw_buckets参数值。
    说明:
    • 该参数并非支持无限调高,具体支持的调整值,和服务器的规格(带宽、CPU)有关。
    • 如果调高后,还是持续保持,则评估是否是正常业务流量。 如果是正常业务流量,则建议在服务器前端引入负载均衡等服务来进行流量分发,以降低单台服务器的流量负载。

适用于

  • 云服务器 ECS