通過
netstat -anp | grep time_wait | wc -l
命令檢視數量,發現time_wait的連線數量超過了18000太誇張了。
1、初步懷疑是程式沒有關閉連線,codereview了兩遍,發現,已經正常關閉。
2、網上看time_wait產生的原因,可能是因為伺服器主動關閉連線導致time_wait產生。
3、查詢time_wait解決方案:
發現系統存在大量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 讓引數生效。
經過配置後,暫時的問題是解決了,再檢視time_wait數量快速下降。
關鍵命令:
1、netstat -n | awk '/^tcp/ end '
會得到類似下面的結果,具體數字會有所不同:
last_ack 1狀態:描述syn_recv 14
established 79
fin_wait1 28
fin_wait2 3
closing 5
time_wait 1669
closed:無連線是活動的或正在進行
listen:伺服器在等待進入呼叫
syn_recv:乙個連線請求已經到達,等待確認
syn_sent:應用已經開始,開啟乙個連線
established:正常資料傳輸狀態
fin_wait1:應用說它已經完成
fin_wait2:另一邊已同意釋放
itmed_wait:等待所有分組死掉
closing:兩邊同時嘗試關閉
time_wait:另一邊已初始化乙個釋放
last_ack:等待所有分組死掉
2、sysctl -a | grep time | grep wait
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
linux下如何釋放TIME WAIT
今天服務 明顯過慢查年了一下伺服器聯接數,糾結於怎麼搞定time wait netstat an awk tcp sort uniq c 68 close wait 2 closing 136 established 38 fin wait1 16 fin wait2 2 last ack 8 li...
linux下解決大量的TIME WAIT
root web02 vi etc sysctl.conf 新增如下內容 net.ipv4.tcp tw reuse 1 net.ipv4.tcp tw recycle 1 net.ipv4.tcp syncookies 1 使核心引數生效 root web02 sysctl p readme ne...
linux 下大量TIME WAIT 的處理
原文 linux 下大量time wait 的處理 linux下高併發的squid伺服器,tcp time wait套接字數量經常達到兩 三萬,伺服器很容易被拖死。通過修改linux核心引數,可以減少伺服器的ime wait套接字數量。vim etc sysctl.conf 增加以下幾行 net.i...