CPU总使用率
在proc/stat下有详细的CPU使用情况.详细格式如下:
CPU 152342 1421 28562 1600830 12389 553 273 0 0
CPU后面的几位数字分别是
user 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。
nice 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间
system 从系统启动开始累计到当前时刻,处于核心态的运行时间
idle 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间
iowait 从系统启动开始累计到当前时刻,IO等待时间
irq 从系统启动开始累计到当前时刻,硬中断时间
softirq 从系统启动开始累计到当前时刻,软中断时间
所以totalCpuTime这个7个属性的和.
CPU总数用率的算法是:100*((totalCpuTimeS-totalCpuTimeF) -(idelS-idelF))/ (totalCpuTimeS-totalCpuTim eF)
当前进程的CPU使用率
/proc/pid/stat下则是该pid的CPU使用情况.详细格式如下:
2341 (cn.jesse.camera) S 1131 1131 0 0 -1 3912246 12450 0 2 0 3321 612 0 0 20 0
其中淡红色的四位数字分别是:
utime 该任务在用户运行状态的时间
stime 该任务在核心运行的时间
cutime 所有已死线程在用户状态运行状态的时间
cstime 所有已死线程在核心的运行时间
所以processCpuTime为这个四个属性的和.当前进行所占CPU的算法是:100*(processCpuTimeS-processCpuTimeF)/(totalCpuTimeS-totalCpuTimeF)