通過uptime查看Linux系統負荷

一、查看系統負荷

  如果你的電腦很慢,你或許想查看一下,它的工作量是否太大了。

  一般在Linux系統中,我們使用uptime命令(w命令和top命令也行)。(另外,它們在蘋果公司的Mac電腦上也適用。)

  你在終端窗口鍵入uptime,系統會返回一行信息。

  這行信息的後半部分,顯示"load average",它的意思是"系統的平均負荷",裏面有三個數字,我們可以從中判斷系統負荷是大還是小。

  爲什麼會有三個數字呢?你從手冊中查到,它們的意思分別是1分鐘、5分鐘、15分鐘內系統的平均負荷。

  如果你繼續看手冊,它還會告訴你,當CPU完全空閒的時候,平均負荷爲0;當CPU工作量飽和的時候,平均負荷爲1。

  那麼很顯然,"load average"的值越低,比如等於0.2或0.3,就說明電腦的工作量越小,系統負荷比較輕。

  但是,什麼時候能看出系統負荷比較重呢?等於1的時候,還是等於0.5或等於1.5的時候?如果1分鐘、5分鐘、15分鐘三個值不一樣,怎麼辦?

  二、一個類比

  判斷系統負荷是否過重,必須理解load average的真正含義。下面,我嘗試用最通俗的語言,解釋這個問題。

  首先,假設最簡單的情況,你的電腦只有一個CPU,所有的運算都必須由這個CPU來完成。

  那麼,我們不妨把這個CPU想象成一座大橋,橋上只有一根車道,所有車輛都必須從這根車道上通過。(很顯然,這座橋只能單向通行。)

  系統負荷爲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處理。

  爲了電腦順暢運行,系統負荷最好不要超過1.0,這樣就沒有進程需要等待了,所有進程都能第一時間得到處理。很顯然,1.0是一個關鍵值,超過這個值,系統就不在最佳狀態了,你要動手干預了。

  三、系統負荷的經驗法則

  1.0是系統負荷的理想值嗎?

  不一定,系統管理員往往會留一點餘地,當這個值達到0.7,就應當引起注意了。經驗法則是這樣的:

  當系統負荷持續大於0.7,你必須開始調查了,問題出在哪裏,防止情況惡化。

  當系統負荷持續大於1.0,你必須動手尋找解決辦法,把這個值降下來。

  當系統負荷達到5.0,就表明你的系統有很嚴重的問題,長時間沒有響應,或者接近死機了。你不應該讓系統達到這個值。

  四、多處理器

  上面,我們假設你的電腦只有1個CPU。如果你的電腦裝了2個CPU,會發生什麼情況呢?

  2個CPU,意味着電腦的處理能力翻了一倍,能夠同時處理的進程數量也翻了一倍。

  還是用大橋來類比,兩個CPU就意味着大橋有兩根車道了,通車能力翻倍了。

  所以,2個CPU表明系統負荷可以達到2.0,此時每個CPU都達到100%的工作量。推廣開來,n個CPU的電腦,可接受的系統負荷最大爲n.0。

  五、多核處理器

  芯片廠商往往在一個CPU內部,包含多個CPU核心,這被稱爲多核CPU。

  在系統負荷方面,多核CPU與多CPU效果類似,所以考慮系統負荷的時候,必須考慮這臺電腦有幾個CPU、每個CPU有幾個核心。然後,把系統負荷除以總的核心數,只要每個核心的負荷不超過1.0,就表明電腦正常運行。

  怎麼知道電腦有多少個CPU核心呢?

  "cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的總核心數。

  六、最佳觀察時長

  最後一個問題,"load average"一共返回三個平均值----1分鐘系統負荷、5分鐘系統負荷,15分鐘系統負荷,----應該參考哪個值?

  如果只有1分鐘的系統負荷大於1.0,其他兩個時間段都小於1.0,這表明只是暫時現象,問題不大。

  如果15分鐘內,平均系統負荷大於1.0(調整CPU核心數之後),表明問題持續存在,不是暫時現象。所以,你應該主要觀察"15分鐘系統負荷",將它作爲電腦正常運行的指標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章