netstat命令和awk來查看web伺服器的並發串連數以及TCP串連狀態。
| 代碼如下 |
複製代碼 |
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 或者: netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}' |
FIN_WAIT2 38
CLOSING 3
SYN_RECV 1
CLOSE_WAIT 1
TIME_WAIT 261
ESTABLISHED 71
LAST_ACK 2
FIN_WAIT1 9
TCP串連的各個狀態含義描述如下
CLOSED 無串連是活動的或進行中
LISTEN 伺服器在等待進入呼叫
SYN_RECV 一個串連請求已經到達,等待確認
SYN_SENT 應用已經開始,開啟一個串連
ESTABLISHED 正常資料轉送狀態/當前並發串連數
FIN_WAIT1 應用說它已經完成
FIN_WAIT2 另一邊已同意釋放
ITMED_WAIT 等待所有分組死掉
CLOSING 兩邊同時嘗試關閉
TIME_WAIT 另一邊已初始化一個釋放
LAST_ACK 等待所有分組死掉
ESTABLISHED參數後面的值就是當前系統的並發串連數了。
查看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 查看Web伺服器處理序串連數: netstat -antp | grep 80 | grep ESTABLISHED -c 查看MySQL進程串連數: ps -axef | grep mysqld -c |
補充
查看當前Apache串連數:
| 代碼如下 |
複製代碼 |
ps -ef |grep httpd|wc -l 或ps -aux |grep httpd |wc -l 查看當前Apache並發串連數和TCP串連狀態: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看串連數和串連狀態: netstat -ant|grep $ip:80|wc -l netstat -ant|grep $ip:EST|wc -l 查看tomcat當前串連狀態: netstat -anlt|grep 8009|grep ESTABLISHED netsat -ant |grep 8009|wc -l 查看mysql當前串連數: mysqladmin -umysql -pmysql static mysqladmin -umysql -pmysql processlist |