Linux查看並發連接數


Linux查看並發連接數

指令(查看Apache的並發請求數及其TCP的連接狀態)

  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

結果

[root@izbp10ebr6tsvo83iahgzdz ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

CLOSE_WAIT 3

ESTABLISHED 87

FIN_WAIT2 9

TIME_WAIT 25

 

語句解析

命令的核心是awk指令簡單的說就,用awk以 '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'規則去解析netstat -n的結果

第一步:netstat -n,結果如下

[root@izbp10ebr6tsvo83iahgzdz ~]# netstat -n 

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 192.168.0.162:57616     100.100.30.25:80        ESTABLISHED

tcp        0      0 192.168.0.162:6379      120.26.55.92:55830      ESTABLISHED

tcp        0      0 192.168.0.162:55764     120.26.55.92:6379       ESTABLISHED

tcp        0      0 192.168.0.162:48556     47.111.164.6:9092       ESTABLISHED

tcp        0      0 192.168.0.162:55776     120.26.55.92:6379       ESTABLISHED

tcp        0      0 192.168.0.162:50172     47.111.219.84:3306      ESTABLISHED

tcp        0      0 192.168.0.162:55766     120.26.55.92:6379       ESTABLISHED

tcp        0      0 192.168.0.162:443       101.247.3.249:41142     ESTABLISHED

tcp        0      0 192.168.0.162:55792     120.26.55.92:6379       ESTABLISHED

tcp        0      0 192.168.0.162:6379      120.26.55.92:55832      ESTABLISHED

tcp        0      0 192.168.0.162:443       101.247.3.249:41082     FIN_WAIT2  

tcp        0      0 192.168.0.162:27017     119.61.6.133:53930      ESTABLISHED

tcp        0      0 192.168.0.162:34212     120.26.55.92:27017      ESTABLISHED

tcp        0      0 192.168.0.162:55830     120.26.55.92:6379       ESTABLISHED

tcp        0      0 192.168.0.162:443       49.98.141.94:23375      TIME_WAIT  

tcp        0      0 192.168.0.162:6379      120.26.55.92:55782      ESTABLISHED

 

這里特別留意下第一列Proto和最后一列state

第二步:awk的解析,規則是 '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}',awk是逐行解析;

  2-1- /^tcp/,正則匹配當前行數據是以tcp開頭

  2-2- $NF,是指當前行的最后一個字段,比如ESTABLISHED

  2-3- S[$NF],以$NF為index,建立數組S

  2-4-  {++S[$NF]} ,每當找到一個$NF,就在給數組(下標是$NF)的值加1;

  2-5- END, 表示執行完'/^tcp/ {++S[$NF]} ,在執行后面指令

  2-6- {for(a in S) print a, S[a]},這是一個for循環語句,表示遍歷數組S,同時打輸出下標和值

  2-7- awk '...' 解析並輸出結果

簡單版

  netstat -na | grep ESTABLISHED  | wc -l     查找連接狀態為ESTABLISHED 的連接信息,並統計數量(wc表示 word count,-l表示統計行數line )

[root@izbp10ebr6tsvo83iahgzdz ~]# netstat -na | grep ESTABLISHED | wc -l 114

 

 

END

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM