fastdfs埠號佔用過多導致伺服器網路擁堵問題
阿新 • • 發佈:2020-08-03
在測試階段,前端小姐姐反饋介面返回慢, 查看了一下高峰時間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時間