centos计算内存CPU正确方法

时间:2021-10-11 04:09:05

处理器使用率

这里要从/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。