對於保持大量TIME_WAIT或 CLOSE_WAIT狀態解決辦法。shell
服務器命令:服務器
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
顯示信息:網絡
TIME_WAIT 108tcp
CLOSE_WAIT 1021優化
ESTABLISHED 44spa
FIN_WAIT2 11code
LAST_ACK 1進程
經常使用的三個狀態是:ESTABLISHED 表示正在通訊,TIME_WAIT 表示主動關閉,CLOSE_WAIT 表示被動關閉。資源
對於 保持大量TIME_WAIT 或 CLOSE_WAIT 狀態 ,理解和解決辦法:class
TIME_WAIT:
主動發起關閉的一方最終會進入TIME_WAIT狀態,TIME_WAIT會持續一段時間,通常是2MSL,其目的是爲了實現TCP全雙工鏈接的終止,並容許老的重複分節從網絡中消逝。
優化服務器,可以快速回收和重用那些TIME_WAIT的資源。
CLOSE_WAIT:
被動關閉的一方進入CLOSE_WAIT狀態,CLOSE_WAIT的意思是等待應用進程調用close()。
查代碼。問題必定出如今服務器程序,對方關閉鏈接以後服務器程序本身沒有進一步發出ack信號。