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