centos计算内存CPU正确的一些方法
处理器使用率
这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。
CPU利用率 = 100 *(user + nice + system)/(user + nice + system + idle)
空闲内存=free+buffers+cached=total-used
可用内存=free的.内存+cached的内存+buffers的内存
真正的内存利用率 = 可用内存 / 总内存(注意此处 可用内存 由上述公式计算而来,其实这个计算结果在free命令回显中已有,即回显结果第三行”-/+ buffers/cached”,此行第二个数值即为加上了buffers和cached之后的内存,即为上述公式所算的可用内存 )。
你可以在Linux中,敲入free命令获得当前系统的内存使用情况。
#busybox free
total used free shared buffers
Mem: 55636 52808 2828 0 3132
Swap: 0 0 0
Total: 55636 52808 2828
当我满心欢喜的敲入上面的命令时,收到的却是一阵阵的冷汗,2828k,我的系统只剩下了2M多的内存,系统还能跑吗,是不是命令有错误!!!
让我们来看看在PC机上的Linux系统中,结果是什么样子的。
#free
total used free shared buffers cached
Mem: 4091524 4021016 70508 0 7656 1824312
-/+ buffers/cache: 2189048 1902476
Swap: 4088532 2891732 1196800
这里我先解释一下几个关键的概念。
buffers:主要是用来给Linux系统中块设备做缓冲区。
cached:用来缓冲我们所打开的文件。
在系统中内存是很宝贵的资源,Linux的思想是,如果内存充足,不用白不用,它会使用内存来cache一些文件,从而加快进程的运行速度;当内存不足时,这些内存又会被回收,供程序使用。
所以真正可用的内存=free+buffers+cached=70508+7656+1824312=1902476。