我們有時會把%CPU和us%搞暈,也就是下圖所示在top的時候查看cpu的信息。
這時有人會問:這兩個CPU到底哪個是對的。
其實都是對的,只是表達的意思不一樣。
官方解釋如下
Cpu(s):34.0% us: 用戶空間占用CPU百分比
%CPU:上次更新到現在的CPU時間占用百分比
讀到這里我也不是十分理解他們倆的關系,我一直以為%CPU是每個進程占用的cpu百分比,按理來說所有進程的該值加在一起應該等於us.
但事實並非如此,此時我們可以在top界面按一下1
這時候我們可以清晰得看到每個cpu的運行狀態。
通過上面的顯示我們發現Cpu(s)表示的是 所有用戶進程占用整個cpu的平均值,由於每個核心占用的百分比不同,所以按平均值來算比較有參考意義。而%CPU顯示的是進程占用一個核的百分比,而不是整個cpu(12核)的百分比,有時候可能大於100,那是因為該進程啟用了多線程占用了多個核心,所以有時候我們看該值得時候會超過100%,但不會超過總核數*100。