LINUX下CPU Load Average的一點研究


背景:

公司的某個系統工作在基於Linux的Cent OS下,一個host下同時連接了許多client, 最近某台Host總是顯示CPU Load Average過高,我們單純的以為是CPU的占用過高,其實沒這么簡單,於是老板讓我趁這個機會研究一下CPU Load Average,最近剛好想開學習LINUX的文章,就把這個當成一個起點吧。

Load Average(平均負載)基本概念:

  • Load 指的是運行隊列(run-queue)的長度:L = 等待進程的數目 + 運行進程的數目
  • Load Average指的是在一段時間內CPU正在處理以及等待CPU處理的進程數之和的統計信息,也就是CPU使用隊列的長度的統計信息。
  • Load Average反映了CPU的使用情況和申請情況.

Load Average(平均負載)和CPU占用率的區別:

  • Load Average所包含的信息不是CPU的使用率狀
  • 多任務環境下,系統分配時間片以后,是否使用完全使用時間片取決於進程,因此完全可能出現低CPU利用率而高Load Average的情況

Load Average的計算:

  • 在多處理器系統中,負載閥值是基於內核的數量決定的。以 100% 負載計算,1.00 表示單個處理器,而 2.00 則說明有兩個雙處理器,那么 4.00 就說明主機具有四個處理器。超過這個閥值就表示系統過載了
  • Load Average的實時計算公式:
    • load(t) = load(t-1) e^(-5/60) + n (1 - e^(-5/60)),迭代計算,其中n為run-queue的長度

Linux下通過top或者uptime命令可以查看系統的Load Average,它顯示的是系統在1分鍾,5分鍾,15分鍾之內的Load Average值

  • 1分鍾的平均值通常表示峰值,應該着眼於5分鍾或者15分鍾的平均數值
  • 遠程連接到一台LINUX上通過top命令查詢系統的平均負載:
  • 遠程連接到一台LINUX上通過uptime命令查詢系統的平均負載:

 

本文參考文章:

參考文章里的三篇文章寫得都非常好,如果你想了解更多一點,請一定深入拜讀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM