总的cpu使用率统计
cat /proc/stat得到(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组
cpu从启动至今总的时间:totalCpuTime = user + nice + system + idle + iowait + irq + softirq + stealstolen + guest
cpu启动至今空闲时间:idle
再采两个够短的时间点,做差计算即可
单个进程cpu使用率统计
cat /proc/pid/stat读取到
pid=6873 进程号
utime=1587 该任务在用户态运行的时间,单位为jiffies
stime=41958 该任务在核心态运行的时间,单位为jiffies
cutime=0 所有已死线程在用户态运行的时间,单位为jiffies
cstime=0 所有已死在核心态运行的时间,单位为jiffies
进程总cpu时间=utime+stime+cutime+cstime
然后用两个时间快照的cpu使用时间差/总的cpu时间差即可