Linux下查看併發連接數

 

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

我解釋一下,如果有不對的,請高手指教。
/^tcp/ # 搜索以tcp開頭的行
S[$NF]  以$NF爲數組下標,建立數組S
++S[$NF] 給數組S賦值,相當於有一個tcp那麼這個S數組裏的元素就+1
/^tcp/ {++S[$NF]}  整個意思應該是 匹配出一個tcp協議的連接 數組S就+一個元素值
END是前面的/^tcp/ {++S[$NF]} 執行結束後在執行
{for(a in S) print a, S[a]}  將S值代入a 打印a 和這個S[a]數組的值
比如S是10 那麼a就是10  S[a] 就是s這個數組的第10個元素的值

返回結果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。

狀態:描述
  CLOSED:無連接是活動的或正在進行
  LISTEN:服務器在等待進入呼叫
  SYN_RECV:一個連接請求已經到達,等待確認
  SYN_SENT:應用已經開始,打開一個連接
  ESTABLISHED:正常數據傳輸狀態
  FIN_WAIT1:應用說它已經完成
  FIN_WAIT2:另一邊已同意釋放
  ITMED_WAIT:等待所有分組死掉
  CLOSING:兩邊同時嘗試關閉
  TIME_WAIT:另一邊已初始化一個釋放
  LAST_ACK:等待所有分組死掉

查看Nginx運行進程數

ps -ef | grep nginx | wc -l返回的數字就是nginx的運行進程數

如果是apache則執行
ps -ef | grep httpd | wc -l3

查看Web服務器進程連接數:

netstat -antp | grep 80 | grep ESTABLISHED -c4

查看MySQL進程連接數:

ps -axef | grep mysqld -c

grep -c 的作用類似grep | wc -l,不同的是,如果是查找多個文件,grep -c會統計每個文件匹配的行數,每行一個文件的列出來,而wc -l 則列出總的統計數字。
另外grep -c 要比 grep | wc -l快一點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章