Cpu使用率計(jì)算(/proc/stat基礎(chǔ)使用)

一。單核情況下Cpu使用率的計(jì)算

基本思想

通過讀取/proc/stat 、/proc/<pid>/stat、/proc/<pid>/task/<tid>/stat以及/proc/cpuinfo這幾個(gè)文件獲取總的Cpu時(shí)間、進(jìn)程的Cpu時(shí)間、線程的Cpu時(shí)間以及Cpu的個(gè)數(shù)的信息,然后通過一定的算法進(jìn)行計(jì)算(采樣兩個(gè)足夠短的時(shí)間間隔的Cpu快照與進(jìn)程快照來(lái)計(jì)算進(jìn)程的Cpu使用率)。

1.1總的Cpu使用率計(jì)算

計(jì)算方法:

1.采樣兩個(gè)足夠短的時(shí)間間隔的Cpu快照,分別記作t1,t2,其中t1、t2的結(jié)構(gòu)均為:

(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元組;

2.計(jì)算總的Cpu時(shí)間片totalCpuTime

a) 把第一次的所有cpu使用情況求和,得到s1;

b) 把第二次的所有cpu使用情況求和,得到s2;

c) s2 - s1得到這個(gè)時(shí)間間隔內(nèi)的所有時(shí)間片,即totalCpuTime = j2 - j1 ;

3、計(jì)算空閑時(shí)間idle

idle對(duì)應(yīng)第四列的數(shù)據(jù),用第二次的第四列 - 第一次的第四列即可

idle=第二次的第四列 - 第一次的第四列

6、計(jì)算cpu使用率

pcpu =100* (total-idle)/total

1.2 某一進(jìn)程Cpu使用率的計(jì)算

計(jì)算方法:

1. 采樣兩個(gè)足夠短的時(shí)間間隔的cpu快照與進(jìn)程快照,

a) 每一個(gè)cpu快照均為(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元組;

b) 每一個(gè)進(jìn)程快照均為 (utime、stime、cutime、cstime)的4元組;

2. 分別根據(jù)結(jié)論****2****、結(jié)論3計(jì)算出兩個(gè)時(shí)刻的總的cpu時(shí)間與進(jìn)程的cpu時(shí)間,分別記作:totalCpuTime1、totalCpuTime2、processCpuTime1、processCpuTime2

3. 計(jì)算該進(jìn)程的cpu使用率pcpu = 100*( processCpuTime2 – processCpuTime1) / (totalCpuTime2 – totalCpuTime1) (按100%計(jì)算,如果是多核情況下還需乘以cpu的個(gè)數(shù));

實(shí)驗(yàn)過程可以使用top命令進(jìn)行驗(yàn)證

1.3 某一線程Cpu使用率的計(jì)算

計(jì)算方法:

1. 采樣兩個(gè)足夠短的時(shí)間隔的cpu快照與線程快照,

a) 每一個(gè)cpu快照均為(user、nice、system、idle、iowait、irq、softirq、stealstealon、guest)的9元組;

b) 每一個(gè)線程快照均為 (utime、stime)的2元組;

2. 分別根據(jù)結(jié)論****2****、結(jié)論4計(jì)算出兩個(gè)時(shí)刻的總的cpu時(shí)間與線程的cpu時(shí)間,分別記作:totalCpuTime1、totalCpuTime2、threadCpuTime1、threadCpuTime2

3. 計(jì)算該線程的cpu使用率pcpu = 100*( threadCpuTime2 – threadCpuTime1) / (totalCpuTime2 – totalCpuTime1) (按100%計(jì)算,如果是多核情況下還需乘以cpu的個(gè)數(shù));

原文鏈接參考:https://www.cnblogs.com/liushui-sky/p/9236007.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容