Linux下查看apache連接數

1、查看apache當前併發訪問數:
  
  

#對比httpd.conf中MaxClients的數字差距多少。
netstat -an | grep ESTABLISHED | wc -l


2、查看httpd進程數(即prefork模式下Apache能夠處理的併發請求數):

ps aux|grep httpd|wc -l


3、可以使用如下參數查看數據
  
  

ps -ef|grep httpd|wc -l
#1388
#統計httpd進程數,連個請求會啓動一個進程,使用於Apache服務器。
#表示Apache能夠處理1388個併發請求,這個值Apache可根據負載情況自動調整。
netstat -nat|grep -i "80"|wc -l
#4341
#netstat -an會打印系統當前網絡鏈接狀態,而grep -i "80"是用來提取與80端口有關的連接的,wc -l進行連接數統計。
#最終返回的數字就是當前所有80端口的請求總數。
netstat -na|grep ESTABLISHED|wc -l
#376
#netstat -an會打印系統當前網絡鏈接狀態,而grep ESTABLISHED 提取出已建立連接的信息。 然後wc -l統計。
#最終返回的數字就是當前所有80端口的已建立連接的總數。
netstat -nat||grep ESTABLISHED|wc
#可查看所有建立連接的詳細記錄

4、查看Apache的併發請求數及其TCP連接狀態:
 

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

(這條語句是從 新浪互動社區事業部 新浪互動社區事業部技術總監王老大那兒獲得的,非常不錯)返回結果示例:
 
 

LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

其中:
  SYN_RECV表示正在等待處理的請求數;
  ESTABLISHED表示正常數據傳輸狀態;
  TIME_WAIT表示處理完畢,等待超時結束的請求數。

5、輸出每個ip的連接數,以及總的各個狀態的連接數

netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

參考:

[1] http://www.hackbase.com/tech/2011-10-14/65364.html

[2] http://www.2cto.com/os/201201/117532.html

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