從This和this link我正在嘗試計算CPU利用率,但未按預期進行。電流和prev之間(即 我的應用程序是顯示CPU利用率爲3%和頂部被示出99%以上。)如何使用「proc」文件系統計算Linux中所有正在運行的進程的CPU利用率?
我試圖下面方法,
usage=100*(((utime_ticks_current + cutime_ticks_current + stime_ticks_current + cstime_ticks_current) - (utime_ticks_prev + cutime_ticks_prev + stime_ticks_prev + cstime_ticks_prev))/(long)(total_cpu_time_current - total_cpu_time_prev))
here,
utime_ticks = /proc/pid/stat -> 14th value
stime_ticks = /proc/pid/stat -> 15th value
cutime_ticks = /proc/pid/stat -> 16th value
cstime_ticks = /proc/pid/stat -> 17th value
total_cpu_time = /proc/stat -> sum of all 10 values
時差爲1秒。
此外,我手動檢查所有變量的所有值都是正確的。
請注意,我分別嘗試了同樣的事情「STIME,cstime」和「UTIME,cutime」
我認爲在我正在計算的方式有些問題,
燦任何人都請幫忙?
我只找到解決方案,我只需要將該值與可用的Cores/CPU總數相乘即可。
那麼,你想獲得單個進程的CPU使用率,或一段時間內的平均CPU使用率? – Mirakurun
我想計算在系統上運行的所有進程的CPU利用率(%) – Chirag