uptime命令回顯中的load average所表示的意思和w命令相似,都是表示過去的1分鐘、5分鐘和15分鐘內(nèi)進程隊列中的平均進程數(shù)量。
這里需要注意的是load average這個輸出值,這三個值的大小一般不能大于系統(tǒng)邏輯CPU的個數(shù),例如,本輸出中系統(tǒng)有4個邏輯CPU,如果load average的三個值長期大于4時,說明CPU很繁忙,負載很高,可能會影響系統(tǒng)性能,但是偶爾大于4時,倒不用擔(dān)心,一般不會影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個數(shù),則表示CPU還有空閑,比如本例中的輸出,CPU是比較空閑的。
當(dāng)CPU完全空閑的時候 平均負荷為0;當(dāng)CPU工作量飽和的時候 平均負荷為1
系統(tǒng)負荷為0,意味著大橋上一輛車也沒有;
系統(tǒng)負荷為0.5,意味著大橋一半的路段有車;
系統(tǒng)負荷為1.0,意味著大橋的所有路段都有車,也就是說大橋已經(jīng)"滿"了。但是必須注意的是,直到此時大橋還是能順暢通行的;
系統(tǒng)負荷為1.7,意味著車輛太多了,大橋已經(jīng)被占滿了(100%),后面等著上橋的車輛為橋面車輛的70%。以此類推,系統(tǒng)負荷2.0,意味著等待上橋的車輛與橋面的車輛一樣多;系統(tǒng)負荷3.0,意味著等待上橋的車輛是橋面車輛的2倍??傊?dāng)系統(tǒng)負荷大于1,后面的車輛就必須等待了;系統(tǒng)負荷越大,過橋就必須等得越久。
CPU的系統(tǒng)負荷,基本上等同于上面的類比。大橋的通行能力,就是CPU的最大工作量;橋梁上的車輛,就是一個個等待CPU處理的進程(process)。
如果CPU每分鐘最多處理100個進程,那么系統(tǒng)負荷0.2,意味著CPU在這1分鐘里只處理20個進程;系統(tǒng)負荷1.0,意味著CPU在這1分鐘里正好處理100個進程;系統(tǒng)負荷1.7,意味著除了CPU正在處理的100個進程以外,還有70個進程正排隊等著CPU處理。
當(dāng)系統(tǒng)負荷持續(xù)大于0.7,你必須開始調(diào)查了,問題出在哪里,防止情況惡化。
當(dāng)系統(tǒng)負荷持續(xù)大于1.0,你必須動手尋找解決辦法,把這個值降下來。
當(dāng)系統(tǒng)負荷達到5.0,就表明你的系統(tǒng)有很嚴(yán)重的問題,長時間沒有響應(yīng),或者接近死機了。你不應(yīng)該讓系統(tǒng)達到這個值。
所以,2個CPU表明系統(tǒng)負荷可以達到2.0,此時每個CPU都達到100%的工作量。推廣開來,n個CPU的電腦,可接受的系統(tǒng)負荷最大為n.0。
cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的總核心數(shù)。
如果只有1分鐘的系統(tǒng)負荷大于1.0,其他兩個時間段都小于1.0,這表明只是暫時現(xiàn)象,問題不大。
如果15分鐘內(nèi),平均系統(tǒng)負荷大于1.0(調(diào)整CPU核心數(shù)之后),表明問題持續(xù)存在,不是暫時現(xiàn)象。所以,你應(yīng)該主要觀察"15分鐘系統(tǒng)負荷",將它作為電腦正常運行的指標(biāo)。