proc文件系统介绍
/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
/proc目录中有一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pid,它们是读取进程信息的接口。此外,在Linux 2.6.0-test6以上的版本中/proc/pid目录中有一个task目录,/proc/pid/task目录中也有一些以该进程所拥有的线程的线程号命名的目录/proc/pid/task/tid,它们是读取线程信息的接口。
CPU使用率
要想计算CPU使用率,首先要了解文件/proc/stat中的内容,如下是本人所使用服务器中该文件中的内容:
CPU 以及CPU0、CPU1、CPU2、CPU3、CPU4中每行的每个参数意思(以第一行为例)解释:
user (28201) :从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice (389) :从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system (10975) :从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle (6552431) :从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait (19704) :从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq (0) :从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq (208): 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)
获取cpu使用率的方法: