通过proc文件系统,查看进程资源消耗

1.查看内存消耗

at /proc/pid/status | grep VmSize
知识兔

  返回虚拟内存使用,和使用top命令查看的数值一样。

2.查看cpu消耗

at /proc/pid/stat
知识兔

下面是前面部分数据

061 (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,总共的运行时间。

at /proc/stat
知识兔
pu  306649 0 55588 25427762 380 1 1420 0 0 0
知识兔

 这几个数字求和,便是cpu运行到现在的时间,单位jiffies.

依次是

ser  从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system  从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle  从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq  从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)
知识兔
计算机