TCP: time wait bucket table overflow解決方法


/var/log/messages 中出現大量的

TCP: time wait bucket table overflow

引起該現象的原因是服務器tcp的連接數太多,超出了內和定義的最大數

臨時改變使用

# echo 20000 > /proc/sys/net/ipv4/tcp_max_tw_buckets

永久有效可如下

#vim /etc/sysctl.conf

net.ipv4.tcp_max_tw_buckets = 20000


# sysctl -p

 

 

執行命令

netstat -an | grep 80| awk '{print $6}' | sort | uniq -c | sort -rn

可統計當前個連接的個數

 

 

以下引用其他文章

http://blog.sina.com.cn/s/blog_4e46604d0102vaf1.html

 

故障表現:

一:系統日志頻繁出現:kernel: TCP: time wait bucket table overflow

二:服務器連接中,有大量TIME_WAIT

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TIME_WAIT 5009

FIN_WAIT1 19

ESTABLISHED 3

FIN_WAIT2 2

SYN_RECV 14

CLOSING 146

LAST_ACK 1

解決方案:

vi /etc/sysctl.conf

增加以下幾行:

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000 ##已經修改

說明:

net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。

net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。

net.ipv4.tcp_keepalive_time = 1200 表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鍾。

net.ipv4.ip_local_port_range = 1024 65000 表示用於向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192 表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。

net.ipv4.tcp_max_tw_buckets = 5000 表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。默認為180000,改 為5000。對於Apache、Nginx等服務器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於Squid,效果卻不大。此項參 數可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

執行以下命令使配置生效:

sysctl -p

觀察幾分鍾后,報錯消失,TIME_WAIT連接數減少了。

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TIME_WAIT 3647

SYN_SENT 1

FIN_WAIT1 14

ESTABLISHED 2

FIN_WAIT2 2

SYN_RECV 17

CLOSING 132


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM