一、基本概念
uptime 最後三個參數是1分鐘、5分鐘、15分鐘的平均負載
平均負載的概念?
平均負載是指單位時間內,系統處於可運行狀態和不可中斷狀態的平均進程數,它和CPU使用率並沒有直接關係。
可運行狀態:正在使用CPU或正在等待CPU的進程,等於處於R狀態的進程
不可中斷狀態:ps中看到的D狀態的進程
比如當平均負載爲2,在只有兩個CPU的系統上,意味着所有的cpu剛好被完全佔用;在有4個CPU的系統上,意味着CPU有50%的空閒。
平均負載爲多少是合理?
首先要知道系統的CPU個數,當平均負載比CPU個數還大時,系統就出現了過載。
平均負載的值爲什麼要取三個時間點的值呢?
類似於衡量成都地區的天氣,需要結合早上、中午、晚上三個時間點的溫度來進行衡量,才能更準確的得出一天的天氣情況。
如果僅僅從中午的溫度、溼度、風向就得出成都地區的天氣情況的結論,會導致以偏概全。
在我看來,平均負載高於CPU數量的70%時,就應該分析排查負載高的問題了。一旦負載過高,就會導致進程響應速度變慢。
二、三種場景實驗
Mpstat -P ALL 5
-P ALL表示監控所有CPU
系統環境:虛擬機centos 7.6
在此環境中,使用stress無法模擬出cpu密集和io密集型進程,需要安裝stress-ng工具
並更新sysstat
2、1 CPU密集型
2、2 IO密集型
2、3 大量進程
三、收穫
通過場景實驗,初步瞭解到了mpstat和pidstat命令的使用
最大的感受是,在學習的過程中,通過不斷的動手實踐,才能把知識學到手,否則都是浮在表面上。以後一定要加強動手實踐。