TIME_WAIT和CLOSE_WAIT

對於保持大量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信號。

相關文章
相關標籤/搜索