user 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。
nice 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间
system 从系统启动开始累计到当前时刻,处于核心态的运行时间
idle 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间
iowait 从系统启动开始累计到当前时刻,IO等待时间
irq 从系统启动开始累计到当前时刻,硬中断时间
softirq 从系统启动开始累计到当前时刻,软中断时间
总CPU时间:totalCputime=Long.parseLong(toks[2]) + Long.parseLong(toks[3])+ Long.parseLong(toks[4]) + Long.parseLong(toks[6])+ Long.parseLong(toks[5]) + Long.parseLong(toks[7])+ Long.parseLong(toks[8])
2、获取单个程序的cpu使用信息
#cat /proc/pid/stat
3763 (om.taobao.hupan) S 1141 1141 0 0 -1 4194624 25014 0 3 04384 286 0 020 0
13 0 1729740 194957312 10555 4294967295 32768 36568 0 0 0 0 4612 0 38120 4294967
295 0 0 17 0 0 0 0 0 0
红色字体数字表示的含义:
utime 该任务在用户态运行的时间
stime 该任务在核心态运行的时间
cutime 所有已死线程在用户态运行的时间
cstime 所有已死在核心态运行的时间
单个程序CPU使用率:threadCpuTime=Long.parseLong(tok[13]) + Long.parseLong(tok[14]) + Long.parseLong(tok[15]) + Long.parseLong(tok[16])
CPU总使用率(%) = 100*((totalCputime2- totalCputime1)-(idle2-idle1))/(totalCputime2-totalCputime1)
单个程序的CPU使用率(%) = 100*(processCpuTime2-processCpuTime1)/(totalCpuTime2-totalCpuTime1)
3、获取cpu硬件信息
#cat /proc/cpuinfo