系統平均負載

什麼是系統平均負載(Load average)?(What Does "Load Average" Mean?)

在Linux系統中,uptime、w、top等命令都會有系統平均負載load average的輸出,那麼什麼是系統平均負載呢?
系統平均負載被定義爲在特定時間間隔內運行隊列中的平均進程樹。如果一個進程滿足以下條件則其就會位於運行隊列中:
- 它沒有在等待I/O操作的結果
- 它沒有主動進入等待狀態(也就是沒有調用'wait')
- 沒有被停止(例如:等待終止)
例如:
[root@www2 init.d]# uptime
7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94
命令輸出的最後內容表示在過去的1、5、15分鐘內運行隊列中的平均進程數量。
一般來說只要每個CPU的當前活動進程數不大於3那麼系統的性能就是良好的,如果每個CPU的任務數大於5,那麼就表示這臺機器的性能有嚴重問題。對於上面的例子來說,假設系統有兩個CPU,那麼其每個CPU的當前任務數爲:8.13/2=4.065。這表示該系統的性能是可以接受的。

What Does "Load Average" Mean?

The load average numbers give the average number of jobs in the run queue over the last 1, 5, and 15 minutes. (These three time periods may vary from one vendor's Unix system to another, but are usually 1, 5 and 15 minutes.) In other words, the n-minute load average is the number of processes competing for the attention of the CPU(s) at any moment, averaged over n minutes.
The load average plotted here is the 15-minute average. The lowest possible load average is zero, the highest unlimited, though we rarely see load averages exceeding 20, and even 10 is unusual. A load average of one or two is about typical.

平均負載的定義比較複雜,並且受到正在執行的進程的狀態影響。通常,正在運行、等待 CPU 或等待 I/O 的每個進程都會使平均負載加 1。然後對這些圖表進行計算並根據時間平均。

在單 CPU 的系統中,平均負載大於 1 則表示該 CPU 難以承受您所分配的負載類型。但是因爲 UNIX 的多進程的本質,在您關注到該問題前,平均負載在長時間內(換句話說,對應於 15 分鐘的圖表)達到 2 通常是可以接受的。

在多 CPU(或多核)系統中,需要將平均負載除以 CPU 的個數。要確定計算機是否超負荷運行,請使用上述原則。
......
任何長時間的或未預料到的較高的值都可能表示存在問題,並且需要進行進一步的研究。如果這些數值較低,但系統卻運行遲緩,那麼可能表示存在交換空間的問題。


轉自:http://hi.baidu.com/dekar/blog/item/dceb38013852a2e709fa9343.html

發佈了20 篇原創文章 · 獲贊 21 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章