極客時間-linux性能優化 1 如何理解平均負載

一、基本概念

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密集型

stress --cpu x --timeout 600
 
 

2、2  IO密集型

stress -i 1 --timeout 600
 
 

2、3 大量進程

stress -c 16 --timeout 600
 
 

三、收穫

通過場景實驗,初步瞭解到了mpstat和pidstat命令的使用

最大的感受是,在學習的過程中,通過不斷的動手實踐,才能把知識學到手,否則都是浮在表面上。以後一定要加強動手實踐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章