Summary
- 在優化服務器配置的時候,發現服務器端有大量的TIME_WAIT的連接,這需要優化。
Tomcat 案例
- 查詢tomcat對應端口的tcp鏈接,發現存在大量TIME_WAIT的鏈接,還有部分其它狀態的連接,總計400+。
TCP連接數以及各個狀態的數量
netstat -nat | grep 8980 | wc -l
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LISTEN 7
SYN_RECV 2
CLOSE_WAIT 2
ESTABLISHED 97
TIME_WAIT 4867
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉
優化
# 添加如下配置
vim /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
# 立即生效
/sbin/sysctl -p