top後發現load average很高,網站幾乎打不開了
如:
這是怎麼回事呢 我該怎麼辦,本人對伺服器不太懂,主要是做php開發
回複內容:
top後發現load average很高,網站幾乎打不開了
如:
這是怎麼回事呢 我該怎麼辦,本人對伺服器不太懂,主要是做php開發
沒人回答 我都糾結死了
應該是硬碟IO問題,是不是很多寫檔案的操作?
有線程沒有釋放,可能有死迴圈
你把資訊寫的具體一點,這樣沒法回答的
可以使用以下利器
ps -aux | sar -P ALL 1 100 | top | strace -p pid | iowait | gdb
這樣方便找出原因的
man uptime可見:
load average指的是處於task_running或task_uninterruptible狀態的進程(或線程)數的平均值.
處於task_running狀態的進程(或線程),可能正在使用CPU或排隊等待使用CPU.
處於task_uninterruptible狀態的進程(或線程),可能正在等待I/O,比如等待磁碟I/O.
183 116 82 這三個值分別指的是在過去1分鐘,5分鐘,15分鐘的load average.
拿183來說,就是在過去1分鐘,平均有183個任務(進程或線程)處於running或uninterruptible狀態.
我的Xubuntu14.04案頭,總共的任務數(進程或線程)才189個,而你的伺服器居然有4355個.而且在過去1分鐘平均有183個處於運行或不可中斷狀態,而我的電腦這個平均值小於1.
另外你的13.6 wa這個值也比較高,這個值的含義是I/O等待佔用的CPU時間百分比,也就是I/O等待佔用了13.6%的CPU資源.
32.5 sy為核心空間佔用CPU時間百分比為32.5%,而4.8 us使用者空間程式佔用CPU時間百分比卻只有4.8%,這點也不正常.
建議用atop -d(按t重新整理)或iotop找出哪些進程正在讀寫磁碟,如果是PHP,那就把PHP的進程數調低,可以嘗試調為2倍CPU核心數(nproc).因為當CPU和磁碟都忙不過來的時候,開再多的進程也沒有任何意義,只會徒增CPU環境切換和磁碟I/O等待,得不償失.