平均負載指的是單位時間內(1,5,15分鐘)系統處於可運行狀態和不可中斷狀態的平均進程數,也就是平均活躍進程數linux
ps aux
看到的狀態爲R的進程ps aux
看到的狀態爲D的進程。不可中斷狀態其實是系統對進程和硬件設備的一種保護機制
既然平均的是活躍進程數,那麼最理想的就是每一個CPU上正好運行着一個進程,每一個進程CPU都獲得了充分的利用。工具
[root@www ~]# grep 'model name' /proc/cpuinfo | wc -l 4
CPU密集型進程,使用大量的CPU會致使平均負載和CPU使用率
IO密集型進程,等待IO也會致使平均負載升高,可是CPU使用率不必定很高
大量等待CPU的進程調度也會致使平均負載升高,此時的CPU使用率也會比較高
OS:linux
軟件需求:stress sysstat
測試命令:stress 壓力測試
mpstat cpu性能分析工具 pidstat 進程性能分析工具
須要打開三個終端:做爲壓測命令端,負載觀察端,進程觀察端性能
終端一:查看當前平均負載&執行壓測命令測試
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress --cpu 1 --timeout 600 #十分鐘測試
終端二:觀察平均負載變化狀況ui
[root@www ~]# watch -d uptime
終端三:mpstat查看CPU使用率變化狀況和佔用cpu的進程code
[root@www ~]# mpstat -P ALL 5 #抓取CPU的變化率 (5秒輸出一組數據) [root@www ~]# pidstat -u 5 1 #抓取佔用CPU的進程(5秒輸出一組數據)
終端一:查看當前平均負載&執行壓測命令進程
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress --cpu 1 --timeout 600 #十分鐘測試
終端二:觀察平均負載變化狀況get
[root@www ~]# watch -d uptime
終端三:mpstat查看CPU使用率變化狀況和佔用cpu的進程性能分析
[root@www ~]# mpstat -P ALL 5 #抓取CPU的變化率 (5秒輸出一組數據) [root@www ~]# pidstat -u 5 1 #抓取佔用CPU的進程(5秒輸出一組數據)
終端一:查看當前平均負載&執行壓測命令軟件
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress -c 8 --timeout 600 #八個進程模擬,十分鐘測試
終端二:觀察平均負載變化狀況
[root@www ~]# watch -d uptime
終端三:mpstat查看CPU使用率變化狀況和佔用cpu的進程
[root@www ~]# mpstat -P ALL 5 #抓取CPU的變化率 (5秒輸出一組數據) [root@www ~]# pidstat -u 5 1 #抓取佔用CPU的進程(5秒輸出一組數據)
平均負載是一個快速查看系統總體性能的手段,反映了總體的負載狀況。但只看平均負載自己咱們並不能直接發現究竟是哪裏出了瓶頸,在理解平均負載的時候咱們也要注意:
mpstat
、pidstat
等工具來輔助分析