ubuntu系統TCP連接參數優化-TIME_WAIT過多解決辦法


 

狀態:描述
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉

 

想要讓服務器獲得更高的性能,需要對一些內核參數做出調整。

完整參數信息:man 7 tcp

修改 /etc/sysctl.conf,添加如下參數設置。
# 當 SYN 等待隊列溢出時,啟用 cookie。
net.ipv4.tcp_syncookies = 1

# 允許 TIME_WAIT socket 重用。
net.ipv4.tcp_tw_reuse= 1

# 快速回收 TIME_WAIT socket。
net.ipv4.tcp_tw_recycle= 1

# FIN_WAIT 超時時間。
net.ipv4.tcp_fin_timeout = 30

# 啟用 keepalive 時,發送消息的頻率。(默認: 7200 秒)
net.ipv4.tcp_keepalive_time = 1800

# 用於外連的端口范圍。(默認: 32768 到 61000)
net.ipv4.ip_local_port_range= 10000 65000

# SYN 隊列長度。(默認: 1024)
net.ipv4.tcp_max_syn_backlog = 8192
修改完成后執行如下命令生效。
$ sudo sysctl -p

 

也可以用一下命令:
cd /proc/sys/net/ipv4 
echo 1 > tcp_tw_recycle


免責聲明!

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



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