1. 程式人生 > 實用技巧 >fastdfs埠號佔用過多導致伺服器網路擁堵問題

fastdfs埠號佔用過多導致伺服器網路擁堵問題

在測試階段,前端小姐姐反饋介面返回慢, 查看了一下高峰時間TCP連線的情況,統計命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

  

發現存在大量TIME_WAIT狀態的連線
tcp6       0      0 file.onepass.com:51867  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:52170  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:55700  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:54832  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:44428  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:55182  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:53286  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:56476  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:49767  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:49364  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:41321  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:58141  file.onepass.com:8848   TIME_WAIT

  

通過調整核心引數解決 vi /etc/sysctl.conf 編輯檔案,
加入以下內容:
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_fin_timeout = 30 


然後執行/sbin/sysctl -p讓引數生效。

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修改系統預設的TIMEOUT時間