1. 程式人生 > >Linux系統平均負載3個數字的含義

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

系統平均負載-基本解釋

在Linux shell下,有很多命令可以看到Load Average,例如:

[email protected]:~# uptime
12:49:10 up 182 days, 16:54, 2 users, load average: 0.08, 0.04, 0.01

[email protected]:~# w
12:49:18 up 182 days, 16:54, 2 users, load average: 0.11, 0.07, 0.01

[email protected]:~# top
top - 12:50:28 up 182 days, 16:55, 2 users, load average: 0.02, 0.05, 0.00

先大致給一下這3個數字的含義:分別表示系統在過去1分鐘、5分鐘、15分鐘內執行程序佇列中的平均程序數量

執行佇列嘛,沒有等待IO,沒有WAIT,沒有KILL的程序通通都進這個佇列。

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

[email protected]:~# cat /proc/loadavg
0.10 0.06 0.01 1/72 29632

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

系統平均負載-進階解釋

只是上面那一句話的解釋,基本等於沒解釋。寫這篇文章的緣由就是因為看到了一篇老外寫的關於Load Average的文章,覺得解釋的很好,所以才打算摘取一部分用自己的話翻譯一下。

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

為了更好地理解系統負載,我們用交通流量來做類比。

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

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

具體來說:

0.00-1.00 之間的數字表示此時路況非常良好,沒有擁堵,車輛可以毫無阻礙地通過。

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

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

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

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

3、安全的系統平均負載

作者認為單核負載在0.7以下是安全的,超過0.7就需要進行優化了。

4、應該看哪一個數字,1分鐘,5分鐘還是15分鐘?

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

5、怎樣知道我的CPU是幾核呢?

使用以下命令可以直接獲得CPU核心數目

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

結論

取得CPU核心數目N,觀察後面2個數字,用數字/N,如果得到的值小於0.7即可無憂。