一.簡介
使用top或者uptime命令可以看到cpu平均負載,1,5,15分鍾
平均負載包括以下幾個部分:
- 正在運行的進程。正在使用cpu做計算的進程,ps看到R 也就是running。
- 等待運行的進程。cpu跑滿了,等待執行的進程,ps看到的R 也就是runnable。
- 不可中斷進程。等待硬件設備IO響應的進程,ps看到的D,也就是disk sleep,對硬件設備的一種保護。當一個進程在向硬盤寫數據,如果被其它進程打斷了,那數據將會不一致。
平均負載是指單位時間內,處於可運行狀態和不可中斷狀態的進程數。
如果是多個cpu,先計算每個cpu的平均負載,再求和
平均負載並非使用率。cpu頂多100%,不可能120%使用率,但負載可以是200%,因為還有等待運行的進程。
二.合理的負載
理想情況下,5個cpu,負載為5是最好的,都滿載。
當1分鍾,5分鍾,15分鍾相差不大,說明系統很穩定
當1分鍾小於15分鍾,說明過去15分鍾負載很高,當前正在降低
當1分鍾大於15分鍾,說明負載正在增加,過去15分鍾負載比較低
當平均負載超過cpu核心數70%就要注意了,可能有大量任務堆積,需要排查。
但是:
當有10個cpu核心時,負載顯示1則說明可能有一個cpu滿載,也可能是10個cpu都使用10%
當有10個cpu核心時,負載顯示10則說明可能有一個cpu滿載,並有900%任務在等待,也可能10個cpu都滿載
所以:
需要可以使用htop
等工具來查看cpu是否都集中在一個上面運行。若是4核心,但負載都集中在一個上,程序依然會很慢