報“Time wait bucket table overflow”錯誤
發(fā)布時間:2021-03-01 點擊數:726
問題現象
- Linux實例的/var/log/messages
-
日志信息全是類似“kernel:
TCP: time wait bucket table overflow”的報錯信息,提示“time
wait bucket table”溢出,系統(tǒng)顯示類似如下。
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.
-
執(zhí)行以下命令,統(tǒng)計處于TIME_WAIT狀態(tài)的TCP連接數,發(fā)現處于TIME_WAIT狀態(tài)的TCP連接非常多。
netstat -ant|grep TIME_WAIT|wc -l
原因分析
參數net.ipv4.tcp_max_tw_buckets可以調整內核中管理TIME_WAIT狀態(tài)的數量。當實例中處于TIME_WAIT狀態(tài),及需要轉換為TIME_WAIT狀態(tài)的連接數之和超過net.ipv4.tcp_max_tw_buckets參數值時,messages日志中將報“time wait bucket table” 錯誤,同時內核關閉超出參數值的部分TCP連接。您需要根據實際情況適當調高net.ipv4.tcp_max_tw_buckets參數,同時從業(yè)務層面去改進TCP連接。
解決方法
-
執(zhí)行以下命令,統(tǒng)計TCP連接數。
netstat -anp |grep tcp |wc -l
-
執(zhí)行以下命令,查詢net.ipv4.tcp_max_tw_buckets參數。如果確認連接使用很高,則容易超出限制。
vi /etc/sysctl.conf
- 根據現場情況,增加net.ipv4.tcp_max_tw_buckets參數值的大小。
-
執(zhí)行sysctl
-p命令,使配置生效。
