Linux系統平均負載3個數字的含義解析

愈來愈多人開始接觸Linux操做系統,從VPS到無線路由的刷機系統(如OpenWRT、Tomato),同時也必不可少地會在各式各樣的探針和系統監測界面上看到"系統平均負載"或者"Load Average"這樣的字眼,可是它並不像咱們習慣中Windows、Mac操做系統提供百分比顯示CPU、內存佔用率,而是以幾個用空格隔開的浮點數來表示系統平均負載,那麼它們究竟是什麼意思呢?又如何衡量系統負載及系統的穩定性呢?shell

系統平均負載-基本解釋安全

在Linux shell下,有不少命令能夠看到Load Average,例如:app

  
  
  
  
  1. root@Slyar.com:~# uptime ide

  2. 12:49:10 up 182 days, 16:54, 2 users, load average: 0.08, 0.04, 0.01 優化

  3. root@Slyar.com:~# w ui

  4. 12:49:18 up 182 days, 16:54, 2 users, load average: 0.11, 0.07, 0.01 spa

  5. root@Slyar.com:~# top 操作系統

  6. top - 12:50:28 up 182 days, 16:55, 2 users, load average: 0.02, 0.05, 0.00 翻譯

先大體給一下這3個數字的含義:分別表示系統在過去1分鐘、5分鐘、15分鐘內運行進程隊列中的平均進程數量。xml

運行隊列嘛,沒有等待IO,沒有WAIT,沒有KILL的進程統統都進這個隊列。

另外還有一個最直接的顯示系統平均負載的命令:

  
  
  
  
  1. root@Slyar.com:~# cat /proc/loadavg

  2. 0.10 0.06 0.01 1/72 29632

除了前3個數字表示平均進程數量外,後面的1個分數,分母表示系統進程總數,分子表示正在運行的進程數;最後一個數字表示最近運行的進程ID.

系統平均負載-進階解釋

只是上面那一句話的解釋,基本等於沒解釋。寫這篇文章的原因就是由於看到了一篇老外寫的關於Load Average的文章,以爲解釋的很好,因此纔打算摘取一部分用本身的話翻譯一下。

@scoutapp Thanks for your article Understanding Linux CPU Load, I just translate and share it to Chinese audiences.

爲了更好地理解系統負載,咱們用交通流量來作類比。

一、單核CPU - 單車道 - 數字在0.00-1.00之間正常

路況管理員會告知司機,若是前面比較擁堵,那司機就要等待,若是前面一路暢通,那麼司機就能夠駕車直接開過。

具體來講:

0.00-1.00 之間的數字表示此時路況很是良好,沒有擁堵,車輛能夠毫無阻礙地經過。

1.00 表示道路還算正常,但有可能會惡化並形成擁堵。此時系統已經沒有多餘的資源了,管理員須要進行優化。

1.00-*** 表示路況不太好了,若是到達2.00表示有橋上車輛一倍數目的車輛正在等待。這種狀況你必須進行檢查了。

二、多核CPU - 多車道 - 數字/CPU核數 在0.00-1.00之間正常

多核CPU的話,滿負荷狀態的數字爲 "1.00 * CPU核數",即雙核CPU爲2.00,四核CPU爲4.00。

三、安全的系統平均負載

做者認爲單核負載在0.7如下是安全的,超過0.7就須要進行優化了。

四、應該看哪個數字,1分鐘,5分鐘仍是15分鐘?

做者認爲看5分鐘和15分鐘的比較好,即後面2個數字。

五、怎樣知道個人CPU是幾核呢?

使用如下命令能夠直接得到CPU核心數目

grep 'model name' /proc/cpuinfo | wc -l

結論

取得CPU核心數目N,觀察後面2個數字,用數字/N,若是獲得的值小於0.7便可無憂。

相關文章
相關標籤/搜索