进程文件系统,procfs,是一个伪文件系统,它允许对一些非传统意义上的文件通过标准文件I/O接口进行访问。procfs将Solaris内核进程架构进行了抽象,当前系统中所有运行着的进程会在/proc/目录下有所体现。/proc/目录下的对象不是真实磁盘文件,这些对象位于内核内存中,用户执行ls(1)命令显示/proc/目录结构时,系统读取内核内存并返回相应内容。 因此我们可以利用它来计算CPU利用率和内存信息。
CPU利用率的计算方法:
总利用率: /proc/stat中的第一行;
每个CPU的利用率:/proc/stat中第二行从cpu0开始,如果只有一个CPU,那就只有cpu0
信息获取方法:
注意cpux:后面有4列数字,依次是user, nice, sys, idle的数值。
对这个文件需要读取两遍,我们用total表示累计总资源,那么user+sys就是我们想要知道的累计CPU占用的资源。每个变量后面的数字表示它是第几次读文件得到的,用如下方法可算出CPU占用率:IntCpuRate =(int)rintf(((float)((user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1))/(float)(total_2 - total_1) )*100) 。
由于两次读取的时间间隔比较短,就近似的认为这就是即时的CPU利用率。































































































































