最近其實很常發生一件事情,就是blog這台server會突然網頁沒有回應
我一直以為是電腦當了 結果後來發現server其實沒死,連apache服務也活得好好的沒掛
但是就是網頁打不開阿 重開apache服務也沒用,都只能重開電腦才能恢復
我還寫了一個小的腳本查看一下apache的連線狀態
RED="\e[31m"
GREEN="\e[32m"
ENDCOLOR="\e[0m"
echo -e "${RED}查看apache當前並發訪問數:netstat -an | grep ESTABLISHED | wc -l${ENDCOLOR}"
netstat -an | grep ESTABLISHED | wc -l
echo -e "${RED}統計80埠連接數netstat -nat|grep -i "80"|wc -l${ENDCOLOR}"
netstat -nat|grep -i "80"|wc -l
echo -e "${RED}統計httpd協議連接數ps -ef|grep httpd|wc -l${ENDCOLOR}"
ps -ef|grep httpd|wc -l
echo -e "${RED}統計已連接上的,狀態為「established netstat -na|grep ESTABLISHED|wc -l${ENDCOLOR}"
netstat -na|grep ESTABLISHED|wc -l
echo -e "${RED}查看有多少個進程數ps aux|grep httpd|wc -l${ENDCOLOR}"
ps aux|grep httpd|wc -l
echo -e "${GREEN}查看Apache的並發請求數及其TCP連接狀態:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'"
echo -e "CLOSED:無連接是活動 的或正在進行LISTEN:伺服器在等待進入呼叫SYN_RECV:一個連接請求已經到達,等待確認SYN_SENT:應用已經開始,打開一個連接ESTABLISHED:正常>數據傳輸狀FIN_WAIT1:應用說它已經完成FIN_WAIT2:另一邊已同意釋放ITMED_WAIT:等待所有分組死掉CLOSING:兩邊同時嘗試關閉TIME_WAIT:另一邊已初始化一個釋放ST_ACK:等待所>有分組死掉${ENDCOLOR}"
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
echo -e "${GREEN} 看連線數誰太多netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n${ENDCOLOR}"
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n
結果還是沒甚麼用,後來搞半天才發現是php-fpm在搞鬼
直接service php-fpm restart 就好了