如何解决 Linux 中 kernel: TCP: time wait bucket 报错

操作系统
问题概述

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命令,使配置生效

如果您有其他问题,欢迎您联系火山引擎技术支持服务

421
2
1
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论