聊一聊Load Average
背景
前段時間,由于有幾個應用引入了 prometheus-net.DotNetRuntime 這個組件,導致系統 CPU 間歇性飆升。這是這個組件一個已知的雷。。
同樣也引發了系統的 Load Average (平均負載) 十分不正常。
這是一臺 4C8G 的服務器,Load Average 卻是達到了 15。這也是有點離譜!修復之后的是穩定在 4 以下的。
關于平均負載,其實里面的學問很多,只要候選人簡歷上提到過 Linux 相關的,老黃是一定會問 Load Average 相關的內容的。
所有也花點時間梳理一下吧。
查看平均負載的N種方式
w
?12:02:29?up?25?days,?19:53,??1?user,??load?average:?1.28,?0.68,?0.49 USER?????TTY??????FROM?????????????LOGIN@???IDLE???JCPU???PCPU?WHAT root?????pts/0????10.10.2.219????12:02????1.00s??0.01s??0.00s?wtop
Tasks:?142?total,???1?running,?141?sleeping,???0?stopped,???0?zombie %Cpu(s):??4.7?us,??2.9?sy,??0.0?ni,?91.3?id,??0.0?wa,??0.3?hi,??0.8?si,??0.0?st MiB?Mem?:??15604.6?total,????170.4?free,???1771.2?used,??13663.0?buff/cache MiB?Swap:??????0.0?total,??????0.0?free,??????0.0?used.??13522.4?avail?Mem?PID?USER??????PR??NI????VIRT????RES????SHR?S??%CPU??%MEM?????TIME+?COMMAND?????????????287467?root??????20???0???22.1g?241512??20400?S???7.3???1.5???1029:52?dotnet287675?root??????20???0???22.1g?233568??20616?S???7.3???1.5???1043:36?dotnet???uptime
?12:04:08?up?25?days,?19:55,??1?user,??load?average:?0.58,?0.61,?0.49上面的輸出結果,都可以看到 load average 的字樣,后面還帶了三個數據。
load?average:?0.58,?0.61,?0.49三個數字怎么理解
既然提供了三個數字,那么這三個數字分別代表什么呢?
從左到右,依次是過去 1分鐘、 5分鐘、 15分鐘,系統的平均負載。
通過這三個數字,就可以比較簡單的判斷系統的負載趨勢,上升或下降。
舉幾個例子來看看。
例子一
1.30?0.90?0.55這三個數字在告訴我們系統的負載在慢慢上升,運行效率可能會減慢。
因為三個數字依次降低,說明在過去的 1 分鐘系統的負載比過去 15 分鐘系統的負載大。
例子二
0.45?0.40?0.43這三個數字在告訴我們系統的負載比較平穩,沒有太大的波動。
因為這三個數字相差不大,比較接近。
例子三
0.45?0.70?1.43這三個數字在告訴我們系統的負載在慢慢下降,運行效率可能會有所提高。
因為三個數字依次上升,說明在過去的 1 分鐘系統的負載比過去 15 分鐘系統的負載小。
上面的三個例子分析也只是能看出趨勢,但是并不確定更加具體一點的信息。
下面看看單個數字的含義。
負載含義
拿 1.43 來說,它是什么意思呢?
如果是單核的機器,比如 1C1G,1C2G,說明系統已經在超負荷運作了,這一個 CPU 已經被完全占用了。
如果是多核的機器,比如 2C4G,4C8G,說明還有空閑的 CPU。
對于 2C 的來說,雖然沒有滿載,但也超過 70% 了,該留意一下了,因為很可能馬上會出現問題。
對于 4C的來說,占用還沒有 50%,基本可以不用太擔心。
據說有一個經驗值,CPU 數量的 0.7 !
當 Load Average 超過這個經驗值的時候,就應該分析排查負載高的問題了。一旦負載過高,就可能導致進程響應變慢,進而影響服務的正常功能。
總結
Load Average 提供了一個快速查看系統整體性能的手段,反映了整體的負載情況。
要分析系統的負載情況,是離不開這三個不同時間間隔的平均值。
總結
以上是生活随笔為你收集整理的聊一聊Load Average的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起学习设计模式--02.简单工厂模式
- 下一篇: Newbe.Claptrap 0.9.4