Linux性能優(yōu)化之 "load average" 基礎(chǔ)理解

load average?基礎(chǔ)

平均負(fù)載(load average)提供了一個快速查看系統(tǒng)整體性能的手段盈罐,反映了系統(tǒng)整體的負(fù)載情況锤岸。

它是指單位時間內(nèi)麦箍,系統(tǒng)處于可運行狀態(tài)和不可中斷狀態(tài)的平均進程數(shù)的指數(shù)衰減平均值应闯。

這個 "指數(shù)衰減平均" 只是一種更快速的計算方式期丰,你把它直接當(dāng)成活躍進程數(shù)的平均值。

所謂可運行狀態(tài)的進程敌完,是指正在使用 CPU 或者正在等待 CPU 的進程储耐。

也就是我們常用 ps/top 命令看到的處于 R 狀態(tài)(Running 或 Runnable)的進程。

不可中斷狀態(tài)的進程則是正處于內(nèi)核態(tài)中的進程滨溉,并且這些流程是不可被打斷的什湘。

比如最常見的是等待硬件設(shè)備的 I/O 響應(yīng),也就是我們在 ps/top 命令中看到的 D 狀態(tài)(Uninterruptible Sleep业踏,也稱為 Disk Sleep)的進程禽炬。

比如,當(dāng)一個進程向磁盤讀寫數(shù)據(jù)時勤家,為了保證數(shù)據(jù)的一致性,在得到磁盤 Ack 前柳恐,它是不能被其他進程打斷的伐脖,這個時候的進程就處于不可中斷狀態(tài)热幔。如果此時的進程被打斷了,就容易出現(xiàn)磁盤與進程內(nèi)數(shù)據(jù)不一致的問題讼庇。

因此绎巨,不可中斷狀態(tài)實際上是系統(tǒng)對進程和硬件設(shè)備的一種保護機制。

既然平均的是活躍進程數(shù)蠕啄,那么最理想的场勤,就是每個 CPU 上都剛好運行著一個進程,這樣每個 CPU 都得到了充分利用歼跟。

比如當(dāng)平均負(fù)載為 2 時和媳,意味著什么呢?

1哈街、在只有 2 個 CPU 的系統(tǒng)上留瞳,意味著所有的 CPU 都剛好被完全占用;

2骚秦、在 4 個 CPU 的系統(tǒng)上她倘,意味著 CPU 有 50% 的空閑;

3作箍、而在只有 1 個 CPU 的系統(tǒng)中硬梁,則意味著有一半的進程競爭不到CPU。

平均負(fù)載最理想的情況是等于 CPU 個數(shù)胞得。所以在評判平均負(fù)載時靶溜,首先你要知道系統(tǒng)有幾個 CPU。

這可以通過 top(按 1) 命令懒震、lscpu 命令或者從文件 /proc/cpuinfo 中讀取

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

推薦的方法是監(jiān)控系統(tǒng)的平均負(fù)載罩息,根據(jù)更多的歷史數(shù)據(jù),來判斷系統(tǒng)負(fù)載的變化趨勢个扰。

一旦負(fù)載過高瓷炮,就可能導(dǎo)致進程響應(yīng)變慢,進而影響服務(wù)的正常功能递宅。

既然平均負(fù)載代表的是平均活躍進程數(shù)娘香,那平均負(fù)載高了,不就意味著CPU 使用率高嗎办龄?

我們還是要回到平均負(fù)載的含義上來烘绽,平均負(fù)載是指單位時間內(nèi),處于可運行狀態(tài)和不可中斷狀態(tài)的進程數(shù)俐填。

所以安接,它不僅包括了正在使用 CPU 的進程,還包括等待 CPU 和等待 I/O 的進程英融。

而 CPU 使用率盏檐,是單位時間內(nèi) CPU 繁忙情況的統(tǒng)計歇式,跟平均負(fù)載并不一定完全對應(yīng)。

比如以下幾種情況:

1胡野、CPU 密集型進程材失,使用大量 CPU 會導(dǎo)致平均負(fù)載升高,此時這兩者是一致的硫豆。

2龙巨、I/O 密集型進程,等待 I/O 也會導(dǎo)致平均負(fù)載升高熊响,但 CPU 使用率不一定很高旨别。

3、大量等待 CPU 的進程調(diào)度也會導(dǎo)致平均負(fù)載升高耘眨,此時的 CPU 使用率也會比較高(主要是 sys cpu 較高)昼榛。比如 CPU上下文切換。

注意:系統(tǒng)的平均負(fù)載(load average)和 CPU 使用率并沒直接關(guān)系剔难。

Linux load average 的誤區(qū)

Load average 的概念源自 Unix 系統(tǒng)胆屿,用于衡量 runnable processes 的數(shù)量。

但是在 Linux 上的 load average 除了包括 Running 和 Runnable process 數(shù)量之外偶宫,還包括 uninterruptible sleep 的進程數(shù)量非迹。

通常等待 I/O 設(shè)備、等待網(wǎng)絡(luò)的時候纯趋,進程會處于 uninterruptible sleep 狀態(tài)憎兽。

Linux 設(shè)計者可能認(rèn)為 uninterruptible sleep 應(yīng)該都是非常短暫的,所以被等同于 runnable吵冒。

然而現(xiàn)實世界中 uninterruptible sleep 未必很短暫纯命。大量的、或長時間的 uninterruptible sleep 通常意味著 I/O 設(shè)備可能遇到了瓶頸痹栖。

我們知道:sleep 狀態(tài)的進程是不需要 CPU 的亿汞,即使所有的 CPU 都空閑,正在 sleep 的進程也是運行不了的揪阿。

所以 Linux 把 uninterruptible sleep 進程加入到 load average 的計算的做法直接顛覆了 load average 本來的意義疗我。

因此在 Linux 系統(tǒng)上,當(dāng)看到 load average 很高的時候南捂,你不知道是 runnable 進程太多還是 uninterruptible sleep 進程太多吴裤,也就無法判斷是 CPU 不夠用還是 I/O 設(shè)備有瓶頸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溺健,一起剝皮案震驚了整個濱河市麦牺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖枕面,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愿卒,死亡現(xiàn)場離奇詭異缚去,居然都是意外死亡潮秘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門易结,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枕荞,“玉大人,你說我怎么就攤上這事搞动□锞” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵鹦肿,是天一觀的道長矗烛。 經(jīng)常有香客問我,道長箩溃,這世上最難降的妖魔是什么瞭吃? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮涣旨,結(jié)果婚禮上歪架,老公的妹妹穿的比我還像新娘。我一直安慰自己霹陡,他們只是感情好和蚪,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烹棉,像睡著了一般攒霹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浆洗,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天催束,我揣著相機與錄音,去河邊找鬼辅髓。 笑死泣崩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洛口。 我是一名探鬼主播矫付,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼第焰!你這毒婦竟也來了买优?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杀赢,沒想到半個月后烘跺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡脂崔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年滤淳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砌左。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡脖咐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汇歹,到底是詐尸還是另有隱情屁擅,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布产弹,位于F島的核電站派歌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痰哨。R本人自食惡果不足惜胶果,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望作谭。 院中可真熱鬧稽物,春花似錦、人聲如沸折欠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锐秦。三九已至咪奖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酱床,已是汗流浹背羊赵。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扇谣,地道東北人昧捷。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像罐寨,于是被迫代替她去往敵國和親靡挥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容