问题概述
Linux 实例的/var/log/messages
日志报错 "kernel: TCP: time wait bucket table overflow
",提示"time wait bucket table
" 溢出
xxx xx xx:xx:xx xx kernel: TCP: time wait bucket table overflow
xxx xx xx:xx:xx xx kernel: TCP: time wait bucket table overflow
问题原因
参数net.ipv4.tcp_max_tw_buckets
可以调整内核中管理 TIME_WAIT 状态的数量。当实例中处于 TIME_WAIT 状态,及需要转换为 TIME_WAIT 状态的连接数之和超过net.ipv4.tcp_max_tw_buckets
参数值时,messages日志中将报“time wait bucket table
” 错误,同时内核关闭超出参数值的部分TCP连接。您需要根据实际情况适当调高net.ipv4.tcp_max_tw_buckets
参数,同时从业务层面去改进 TCP 连接。
解决方案
1.执行以下命令,统计 TCP 连接数
netstat -antp|grep tcp|wc -l
2.对比/etc/sysctl.conf 文件,查询net.ipv4.tcp_max_tw_buckets
参数。如果确认连接使用很高,则容易超出限制。
3.如果确认已经超出,则可以编辑/etc/sysctl.conf
配置文件,根据系统规格,适当调大net.ipv4.tcp_max_tw_buckets 参数值
4.执行sysctl -p
命令,使配置生效
如果您有其他问题,欢迎您联系火山引擎技术支持服务