日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TOP命令 详解CPU 查看多个核心的利用率按1

發布時間:2025/3/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TOP命令 详解CPU 查看多个核心的利用率按1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

top命令是linux下常用的工具,可以查看各個進程的CPU使用情況。先看一個實例:

這是Ramnode雙核VPS的top顯示結果:

左上角可以看到CPU的使用率是11.3%,但是看下面的進程,plugin-containe就占用了17.6%。出現這樣的情況是因為11.3%指的是所有核心的占用情況,17.6%指的是運行當前進程的核心的使用率。有時候可以看到某個進程的使用率已經達到100%了,但是top顯示的也只有50%而已。下面我們來做一個測試:

使用的命令是:

md5sum /dev/zero &

執行上面命令的核心使用率超過了90%,左上角顯示的CPU使用率只有50%多

在top窗口中,按數字鍵“1”就可以看到每個核心的使用情況。

?

?

?

殺掉MD5sum進程 用 kill pid即可

?

關于vmstat,top,ps aux查看的cpu占用率不一致的問題

op,ps,vmstat都是根據系統的proc文件進行計算的,其中vmstat,top都使用了/proc/stat文件,而ps,top也使用了/proc/*/stat文件進行計算。

1.vmstat對于cpu idle的計算方式比較復雜,但是顯示的為平均值,即使用cpu使用時間片的差值/時間間隔/cpu個數(為物理cpu數目*cpu核心數),其中時間間隔為vmstat后加的參數,如vmstat 10就為10s內的平均cpu 占用率;

2.ps計算的為每個進程的cpu占用時間,使用的為/proc/*/stat文件,其中*為進程號,計算方式為使用cpu總的時間片數/Hertz,目前確認為對于每個物理cpu的占用比率,因此在雙核機器上顯示的數值需要除以核心數2;

3.top使用的是/proc/stat計算上面顯示的cpu占用,使用/proc/*/stat計算每個進程占用的時間。但是計算的方式有所不同,代碼較為復雜,但是目前確認為默認顯示為Irix模式,即為相對于單個cpu core的占用的時間,如雙核機器需要將該數值除以2*2計算,通過 shift+i可以進行切換;

通過上述說明可以解釋珺方發現的問題:
問題1:首先,ps aux中兩個compress進程占用cpu 15.5%+28.9%>40%,再加上其它進程,為何vmstat查看cpu空閑率id還能一直大于73%
ps的cpu占用率需要除以雙核cpu數目為2,因此實際占用為(15.5%+28.9% )/2=22.2% ,也就約等于100%-73%;

問題2:其次,top命令顯示的進程compress的cpu占用率和ps顯示的數值差別很大,ps的cpu占用率雷打不動,一直是恒定值,top的比較動態, 難道ps aux顯示的進程cpu占用率不可靠?
ps和top相差的數值為2倍關系,因此顯示的占用率相差很大,同時變化率也會較大;

問題3:最后,這三個命令查出的cpu占用率相互之間均不統一,用哪一個更可靠?例如輸入如下命令,粗體字是cpu占用率
這三個命令的占用率是統一的,按照如下公式進行計算時數據是一致的:
vmstat 的100%-idle == ps的cpu占用/cpu核心數 == top的cpu占用/cpu核心數/物理cpu數目;

?

轉載于:https://www.cnblogs.com/AmilyWilly/p/7016319.html

總結

以上是生活随笔為你收集整理的TOP命令 详解CPU 查看多个核心的利用率按1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。