查看Apache的連接數和當前的連接數以及IP訪問次數,下面有個不錯的示例,大家可以參考下,希望對大家解決問題有所幫助
查看了連接數和當前的連接數
netstat -ant | grep $ip:80 | wc -l
netstat -ant | grep $ip:80 | grep EST | wc -l
查看IP訪問次數
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n
Linux命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
watch "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 表示處理完畢,等待超時結束的請求數;
FIN_WAIT1 表示server端主動要求關閉tcp連接;
FIN_WAIT2 表示客戶端中斷連接;
LAST_ACK 關閉一個TCP連接需要從兩個方向上分別進行關閉,雙方都是通過發送FIN來表示單方向數據的關閉,當通信雙方發送了最后一個FIN的時候,發送方此時處於LAST_ACK狀態,當發送方收到對方的確認(Fin的Ack確認)后才真正關閉整個TCP連接;
==========================================================================================================================
Linux下查看apache連接數
1、查看apache當前並發訪問數:
netstat -an | grep ESTABLISHED | wc -l
對比httpd.conf中MaxClients的數字差距多少。
2、查看有多少個進程數:
ps aux|grep httpd|wc -l
3、可以使用如下參數查看數據
server-status?auto
#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 - 可查看所有建立連接的詳細記錄
查看Apache的並發請求數及其TCP連接狀態:
Linux命令:
1、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表示處理完畢,等待超時結束的請求數。
---------------------------------------------------------------------------------------------
查看httpd進程數(即prefork模式下Apache能夠處理的並發請求數):
Linux命令:
ps -ef | grep httpd | wc -l
查看Apache的並發請求數及其TCP連接狀態:
Linux命令:
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表示處理完畢,等待超時結束的請求數。