最近试验要统计linux系统中的空闲资源(主要是内存和CPU资源)。空闲内存比较容易直接一个free函数就好!但是空闲cpu就比较麻烦了,不像是windows环境下有很多工具和函数可以使用。通过不停的搜索终于找到了求linux环境中空闲CPU的方法。
1. Linux下空闲内存
虽然linux中的空闲内存可以通过free命令获得,不过不建议这么做,因为free出来一堆东西,格式处理不方便。其实linux中的内存信息都存储在/proc/meminfo中。空闲内存的信息就在第二行。如下:
MemTotal: ****** KB
MemFree: ****** KB
所以通过该文件很容易就可以得到空闲内存了!
2. Linux下空闲CPU
在Linux/Unix下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。
在Linux的内核中,有一个全局变量:Jiffies。 Jiffies代表时间。它的单位随硬件平台的不同而不同。系统里定义了一个常数HZ,代表每秒种最小时间间隔的数目。这样jiffies的单位就是1/HZ。Intel平台jiffies的单位是1/100秒,这就是系统所能分辨的最小时间间隔了。每个CPU时间片,Jiffies都要加1。 CPU的利用率就是用执行用户态+系统态的Jiffies除以总的Jiff