一、查看系統(tǒng)負荷
在Linux系統(tǒng)中,我們一般使用uptime命令查看(w命令和top命令也行)。(另外,它們在蘋果公司的Mac電腦上也適用。)
你在終端窗口鍵入uptime,系統(tǒng)會返回一行信息。

這行信息的后半部分,顯示"load average",它的意思是"系統(tǒng)的平均負荷",里面有三個數(shù)字,我們可以從中判斷系統(tǒng)負荷是大還是小。它們的意思分別是1分鐘、5分鐘、15分鐘內(nèi)系統(tǒng)的平均負荷。當CPU完全空閑的時候,平均負荷為0;當CPU工作量飽和的時候,平均負荷為1。那么很顯然,"load average"的值越低,比如等于0.2或0.3,就說明電腦的工作量越小,系統(tǒng)負荷比較輕。
二. 判斷系統(tǒng)負荷是否過重,必須理解load average的真正含義
首先,假設(shè)最簡單的情況,你的電腦只有一個CPU,所有的運算都必須由這個CPU來完成
如果CPU每分鐘最多處理100個進程,那么系統(tǒng)負荷0.2,意味著CPU在這1分鐘里只處理20個進程;系統(tǒng)負荷1.0,意味著CPU在這1分鐘里正好處理100個進程;系統(tǒng)負荷1.7,意味著除了CPU正在處理的100個進程以外,還有70個進程正排隊等著CPU處理。
為了電腦順暢運行,系統(tǒng)負荷最好不要超過1.0,這樣就沒有進程需要等待了,所有進程都能第一時間得到處理。很顯然,1.0是一個關(guān)鍵值,超過這個值,系統(tǒng)就不在最佳狀態(tài)了,你要動手干預(yù)了。
三、系統(tǒng)負荷的經(jīng)驗法則
1.0是系統(tǒng)負荷的理想值嗎?
不一定,系統(tǒng)管理員往往會留一點余地,當這個值達到0.7,就應(yīng)當引起注意了。經(jīng)驗法則是這樣的:
當系統(tǒng)負荷持續(xù)大于0.7,你必須開始調(diào)查了,問題出在哪里,防止情況惡化。
當系統(tǒng)負荷持續(xù)大于1.0,你必須動手尋找解決辦法,把這個值降下來。
當系統(tǒng)負荷達到5.0,就表明你的系統(tǒng)有很嚴重的問題,長時間沒有響應(yīng),或者接近死機了。你不應(yīng)該讓系統(tǒng)達到這個值。
四、多處理器
如果你的電腦裝了2個CPU,會發(fā)生什么情況呢?
2個CPU,意味著電腦的處理能力翻了一倍,能夠同時處理的進程數(shù)量也翻了一倍。
2個CPU表明系統(tǒng)負荷可以達到2.0,此時每個CPU都達到100%的工作量。推廣開來,n個CPU的電腦,可接受的系統(tǒng)負荷最大為n.0。
五、多核處理器
芯片廠商往往在一個CPU內(nèi)部,包含多個CPU核心,這被稱為多核CPU。
在系統(tǒng)負荷方面,多核CPU與多CPU效果類似,所以考慮系統(tǒng)負荷的時候,必須考慮這臺電腦有幾個CPU、每個CPU有幾個核心。然后,把系統(tǒng)負荷除以總的核心數(shù),只要每個核心的負荷不超過1.0,就表明電腦正常運行。
怎么知道電腦有多少個CPU核心呢?
"cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的總核心數(shù)。
六、最佳觀察時長
最后一個問題,"load average"一共返回三個平均值----1分鐘系統(tǒng)負荷、5分鐘系統(tǒng)負荷,15分鐘系統(tǒng)負荷,----應(yīng)該參考哪個值?
如果只有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)負荷",將它作為電腦正常運行的指標。