理解Linux系統負荷

寫在前面

若是你的電腦很慢,你或許想查看一下,它的工做量是否太大了。在Linux系統中,咱們通常使用uptime命令查看(w命令和top命令也行)。信息中顯示"load average",它的意思是"系統的平均負荷",裏面有三個數字,咱們能夠從中判斷系統負荷是大仍是小。進程

會有三個數字它們的意思分別是1分鐘、5分鐘、15分鐘內系統的平均負荷。im

當CPU徹底空閒的時候,平均負荷爲0;當CPU工做量飽和的時候,平均負荷爲1。"load average"的值越低,好比等於0.2或0.3,就說明電腦的工做量越小,系統負荷比較輕。經驗

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

  • 若是隻有1分鐘的系統負荷大於1.0,其餘兩個時間段都小於1.0,這代表只是暫時現象,問題不大。
  • 若是15分鐘內,平均系統負荷大於1.0(調整CPU核心數以後),代表問題持續存在,不是暫時現象。

因此,你應該主要觀察"15分鐘系統負荷",將它做爲電腦正常運行的指標。時間

單CPU

假設最簡單的狀況,你的電腦只有一個CPU,全部的運算都必須由這個CPU來完成。工作

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

  • 系統負荷爲0.5,意味着大橋一半的路段有車。
  • 系統負荷爲1.0,意味着大橋的全部路段都有車,也就是說大橋已經"滿"了。可是必須注意的是,直到此時大橋仍是能順暢通行的。
  • 系統負荷爲1.7,意味着車輛太多了,大橋已經被佔滿了(100%),後面等着上橋的車輛爲橋面車輛的70%。以此類推,系統負荷2.0,意味着等待上橋的車輛與橋面的車輛同樣多;系統負荷3.0,意味着等待上橋的車輛是橋面車輛的2倍。總之,當系統負荷大於1,後面的車輛就必須等待了;系統負荷越大,過橋就必須等得越久。

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

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

  • 當系統負荷持續大於0.7,你必須開始調查了,問題出在哪裏,防止狀況惡化。
  • 當系統負荷持續大於1.0,你必須動手尋找解決辦法,把這個值降下來。
  • 當系統負荷達到5.0,就代表你的系統有很嚴重的問題,長時間沒有響應,或者接近死機了。你不該該讓系統達到這個值。

多CPU

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

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

因此,2個CPU代表系統負荷能夠達到2.0,此時每一個CPU都達到100%的工做量。推廣開來,n個CPU的電腦,可接受的系統負荷最大爲n.0。

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

相關文章
相關標籤/搜索