讀懂系統負載(Load Avg)的含義 | Devops


有過運維Linux服務器的選手,想必對於系統平均負載(load averages)參數不會陌生吧,我們可以通過top, htop, uptime這些命令找到它們(如下圖),那么我們又改如何理解它們呢,今天這篇就來一起看看應該如何讀懂這個load averages參數。

系統平均負載的取值分別來自1分,5分,15分這三個時間區間,對於單核CPU而言,當平均負載為0時,表示CPU完全空閑,當平均負載為1時,表示CPU為滿負荷狀態,但兩個極端都不應出現在我們的服務器上,前者說明系統沒有被充分利用到,后者說明系統瀕臨奔潰,都不是什么好事情。

關於負載的含義,網上最廣泛的示例,是通過橋梁的通過率來解釋的。講的真心好,所以直接「借鑒」過來,需要看原文的直接從參考引用處自行穿越。注意這里的比喻是基於單核CPU的。

系統負荷為0,意味着大橋上一輛車也沒有

系統負荷為0.5,意味着大橋一半的路段有車。

系統負荷為1.0,意味着大橋的所有路段都有車,但任然可以順次通行

系統負荷為1.7,除了橋滿之外,在橋的入口處還有70%的車輛在等待

就目前情況來說,單核的個人PC是不應該的,當然服務器就是另一回事兒了,比如可能你買了某雲主機商的單核廉價套餐來搭梯子,但實際的真實環境中單核真的是很少,所以光知道單核的表現還不行,還得會換算到多核處理器上,其實這也簡單,直接在單核的負載上乘以核數就可以了,換到剛才的大橋示例,多核就是多車道(下圖),車道多了通過率自然就嘎嘎滴。

好了,知道了數值的含義,我們再來看看恰當的經驗值該是多少,到底應該以三個值中的哪個位准,以及預告系統奔潰的經驗值該設置成多少?

前面說到平均負載是1,5,15這三個時間區間的均值。因為偶爾系統負載會出現峰值,短時間1,5分鍾的負載都不夠客觀存在抖動,所以最可靠的肯定是第三個,15分鍾內的均值,如果系統平均負載的第三個值長時間居高不下,那么就應該考慮提升配置或者給系統進程做做減法了。

第二個問題,知道了基准值的位置,那么基准值該是多少呢?其實這個值完全是靠個人經驗的,只能是種預判,就像陰天不一定下雨一樣,好了不賣關子,實際中最好能讓負載保持在滿負載的75%左右,長時間高於這個值就應該考慮做出調整了,當然也恭喜你業務得到拓展了(2333~),另外在生產環境中,你可以通過Monit,Nagios等這樣的監控軟件來監控系統性能指標,從而做到「早發現,早治療」。

如何獲取CPU的核數

Mac

sysctl -n hw.ncpu

Linux

cat /proc/cpuinfo

-完-

你還可以看:

Monit讓你的服務持續在線

關於Github的兩個小技巧

教你如何在Commit時有話可說

使用Gulp-Rsync部署前端項目

Linux查看當前端口狀況

幾種服務端推送技術方案的比較

參考引用

 

 

http://www.wtoutiao.com/p/1faPwo8.html


免責聲明!

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



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