Cpu使⽤率计算(procstat基础使⽤)
⼀。单核情况下Cpu使⽤率的计算
基本思想2012韩国中秋特辑
通过读取/proc/stat 、/proc/<pid>/stat、/proc/<pid>/task/<tid>/stat以及/proc/cpuinfo这⼏个⽂件获取总的Cpu时间、进程的Cpu时间、线程的Cpu时间以及Cpu的个数的信息,然后通过⼀定的算法进⾏计算(采样两个⾜够短的时间间隔的Cpu快照与进程快照来计算进程的Cpu 使⽤率)。
1.1总的Cpu使⽤率计算
计算⽅法:
1.采样两个⾜够短的时间间隔的Cpu快照,分别记作t1,t2,其中t1、t2的结构均为:
英国达人秀天籁童声
hold是什么意思(ur、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组;
luhu设计专业考研2.计算总的Cpu时间⽚totalCpuTime
adico
a) 把第⼀次的所有cpu使⽤情况求和,得到s1;
b) 把第⼆次的所有cpu使⽤情况求和,得到s2;
c) s2 - s1得到这个时间间隔内的所有时间⽚,即totalCpuTime = j2 - j1 ;
3、计算空闲时间idle
诺丁山主题曲
pluto什么意思idle对应第四列的数据,⽤第⼆次的第四列 - 第⼀次的第四列即可
idle=第⼆次的第四列 - 第⼀次的第四列
6、计算cpu使⽤率
pcpu =100* (total-idle)/total
1.2 某⼀进程Cpu使⽤率的计算
计算⽅法:
1. 采样两个⾜够短的时间间隔的cpu快照与进程快照,
flansa) 每⼀个cpu快照均为(ur、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组;
b) 每⼀个进程快照均为 (utime、stime、cutime、cstime)的4元组;
2. 分别根据结论****2****、结论3计算出两个时刻的总的cpu时间与进程的cpu时间,分别记作:totalCpuTime1、totalCpuTime2、processCpuTime1、processCpuTime2
3. 计算该进程的cpu使⽤率pcpu = 100*( processCpuTime2 – processCpuTime1) / (totalCpuTime2 – totalCpuTime1) (按100%计算,如果是多核情况下还需乘以cpu的个数);
实验过程可以使⽤top命令进⾏验证
1.3 某⼀线程Cpu使⽤率的计算
计算⽅法:
1. 采样两个⾜够短的时间隔的cpu快照与线程快照,
a) 每⼀个cpu快照均为(ur、nice、system、idle、iowait、irq、softirq、stealstealon、guest)的9元组;
ytdb) 每⼀个线程快照均为 (utime、stime)的2元组;
2. 分别根据结论****2****、结论4计算出两个时刻的总的cpu时间与线程的cpu时间,分别记作:totalCpuTime1、totalCpuTime2、threadCpuTime1、threadCpuTime2
3. 计算该线程的cpu使⽤率pcpu = 100*( threadCpuTime2 – threadCpuTime1) / (totalCpuTime2 – totalCpuTime1) (按100%计算,如果是多核情况下还需乘以cpu的个数);