问题现象: Linux实例的/var/log/message日志信息全是类似“kernel: TCP: time wait bucket table overflow”的报错信息,提示“time wait bucket table”溢出,系统显示类似如下
i-*** kernel: TCP: time wait bucket table overflow
i-*** kernel: printk: 227 messages suppressed.
i-*** kernel: TCP: time wait bucket table overflow
i-*** kernel: printk: 121 messages suppressed.
i-*** kernel: TCP: time wait bucket table overflow
i-*** kernel: printk: 351 messages suppressed.
i-*** kernel: TCP: time wait bucket table overflow
i-*** kernel: printk: 319 messages suppressed.
执行以下命令,统计处于TIME_WAIT状态的TCP连接数,发现处于TIME_WAIT状态的TCP连接非常多。
netstat -ant|grep TIME_WAIT|wc -l
原因分析: 参数net.ipv4.tcp_max_tw_buckets可以调整内核中管理TIME_WAIT状态的数量。当实例中处于TIME_WAIT状态,及需要转换为TIME_WAIT状态的连接数之和超过net.ipv4.tcp_max_tw_buckets参数值时,message日志中将报“time wait bucket table” 错误,同时内核关闭超出参数值的部分TCP连接。您需要根据实际情况适当调高net.ipv4.tcp_max_tw_buckets参数,同时从业务层面去改进TCP连接。
解决方法: 1、执行以下命令,统计TCP连接数。
netstat -anp |grep tcp |wc -l
2、执行以下命令,查询net.ipv4.tcp_max_tw_buckets参数。如果确认连接使用很高,则容易超出限制。 vi /etc/sysctl.conf 3、根据现场情况,增加net.ipv4.tcp_max_tw_buckets参数值的大小。 4、执行sysctl -p命令,使配置生效。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




