1.查看内存消耗
cat /proc/pid/status | grep VmSize
返回虚拟内存使用,和使用top命令查看的数值一样。
2.查看cpu消耗
cat /proc/pid/stat
下面是前面部分数据
6061 (a.out) R 5770 6061 5770 34817 6061 4210688 52 0 0 0 2602 0 0 0 20 0 1
其中R 之后第11个数据开始的4个数据为cpu消耗即
2602 0 0 0
分别是:
utime=2602 用户态运行时间
stime=0 系统态运行时间
cutime=0 累计该任务的所有的waited for 进程曾经在用户态运行的时间
cstime=0 累计该任务的所有的waited for 进程曾经在系统态运行的时间
注意:
cpu消耗是累计进程使用的cpu时间,单位是jiffies
如果需要计算某进程的cpu消耗率,需要统计该进程运行期间,cpu总jiffies
下面是通过/proc获得cpu,总共的运行时间。
cat /proc/stat
cpu 306649 0 55588 25427762 380 1 1420 0 0 0
这几个数字求和,便是cpu运行到现在的时间,单位jiffies.
依次是
user 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)