統計TCP連線數和狀態

mgoann發表於2020-04-06

統計TCP連線數和狀態
使用AWK工具統計連線資訊!在使用netstat命令時,我們統計的是該機器上的所有連線。在應用調優和壓力測試時,往往我們關心的該應用在某些埠上連線數,以及這些連線數的狀態!

 

 最初我使用的命令很簡單比如說想要統計8080埠上有多少個TCP連線,命令:echo “TCP : “`netstat –nat | grep 8080 | wc –l`,所有TCP中有多少個連線狀態是ESTABLISHED,命令:echo “TCP ESTABLISHED:”`netstat –nat | grep 8080 | grep ESTABLISHED| wc -l`,所有TCP連線中有多少個連線狀態是CLOSE_WAIT,echo “TCP CLOSE_WAIT:”`netstat –nat | grep 8080 | grep CLOSE_WAIT| wc -l`,所有TCP連線中有多少個連線狀態是TIME_WAIT,echo “TCP TIME_WAIT:”`netstat –nat | grep 8080 | grep TIME_WAIT| wc -l`,這樣下來我向統計的資訊需要至少4個命令,而且每個命令都執行一遍netstat –nat,而該命令在大併發量的情況跟下,執行的速度很慢。於是決定用awk來完成統計資訊,命令如下:netstat –nat | grep 8080 | awk ‘{++S[$NF]} END {for (a in S) print a, S[a])}’,經過改造後的命令很簡潔但是功能確很強大,一條命令就可以統計所有的狀態!

 

相關文章