LINUX下CPU Load Average的一点研究
生活随笔
收集整理的這篇文章主要介紹了
LINUX下CPU Load Average的一点研究
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
背景:
公司的某個系統(tǒng)工作在基于Linux的Cent OS下,一個host下同時連接了許多client, 最近某臺Host總是顯示CPU Load Average過高,我們單純的以為是CPU的占用過高,其實沒這么簡單,于是老板讓我趁這個機會研究一下CPU Load Average,最近剛好想開學(xué)習(xí)LINUX的文章,就把這個當成一個起點吧。
Load Average(平均負載)基本概念:
- Load?指的是運行隊列(run-queue)的長度:L = 等待進程的數(shù)目 + 運行進程的數(shù)目
- Load Average指的是在一段時間內(nèi)CPU正在處理以及等待CPU處理的進程數(shù)之和的統(tǒng)計信息,也就是CPU使用隊列的長度的統(tǒng)計信息。
- Load Average反映了CPU的使用情況和申請情況.
Load Average(平均負載)和CPU占用率的區(qū)別:
- Load Average所包含的信息不是CPU的使用率狀況
- 多任務(wù)環(huán)境下,系統(tǒng)分配時間片以后,是否使用完全使用時間片取決于進程,因此完全可能出現(xiàn)低CPU利用率而高Load Average的情況
Load Average的計算:
- 在多處理器系統(tǒng)中,負載閥值是基于內(nèi)核的數(shù)量決定的。以 100% 負載計算,1.00 表示單個處理器,而 2.00 則說明有兩個雙處理器,那么 4.00 就說明主機具有四個處理器。超過這個閥值就表示系統(tǒng)過載了
- Load Average的實時計算公式:
- load(t) = load(t-1) e^(-5/60) + n (1 - e^(-5/60)),迭代計算,其中n為run-queue的長度
Linux下通過top或者uptime命令可以查看系統(tǒng)的Load Average,它顯示的是系統(tǒng)在1分鐘,5分鐘,15分鐘之內(nèi)的Load Average值:
- 1分鐘的平均值通常表示峰值,應(yīng)該著眼于5分鐘或者15分鐘的平均數(shù)值
- 遠程連接到一臺LINUX上通過top命令查詢系統(tǒng)的平均負載:
- 遠程連接到一臺LINUX上通過uptime命令查詢系統(tǒng)的平均負載:
?
本文參考文章:
- http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html
- http://blog.csdn.net/naivebaby/article/details/1386577
- http://wenku.baidu.com/view/9cc0ed4ce518964bcf847c21.html
參考文章里的三篇文章寫得都非常好,如果你想了解更多一點,請一定深入拜讀
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的LINUX下CPU Load Average的一点研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 11 正式发布,这 8 个逆天
- 下一篇: Redis 内存压缩实战