Linux: 用 free -m 查看OS内存

在Linux用free -m 查看OS内存使用情况。显示结果如下:

注:- buffers/cached应该为883

  一、从系统层面分析

    Mem:内存的使用情况总览表。

    totel:机器总的物理内存 单位为:M

    used:用掉的内存。

    free:空闲的物理内存。

    注:物理内存(totel) = 系统看到的用掉的内存(used) + 系统看到空闲的内存(free)

    我们平时看内存的使用也就看这些。

  二、从程序的角度分析

    shared: 多个进程共享的内存总和,当前废弃不用。

    buffers(缓冲):缓存内存数。

    cached(缓存):  缓存内存数。

    注:程序预留的内存 = buffers+cached

    Buffer和Cache的区别
   1. 缓存(cached):作为page cache的内存, 文件系统的cache如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 比会非常小。是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。

  2.缓冲(buffers):作为buffer cache的内存,是块设备的读写缓冲区;是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写入磁盘),也可以通过sync命令手动清空缓冲。
     两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
      buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。
cache经常被用在磁盘的I/O(输入、输出)请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。
 

  三、举个小例子

    linux 系统会把物理内存占用一部分,也就是used的大小,然后在这里内存里面分一部分来供所有的程序实际使用。就如同我买个5亩地,我圈起来,我声明我圈到院子里的都是我的了,别管我咋使用了,然后我拿出1亩地来盖房子。盖房子的这些地就是系统程序实际使用的,就是后来所说的:- buffers/cache,然后系统还会预留出来一部分在房子旁边当菜园,杂物室之类的,buffers和cached就是这些出了房子之外的菜园所占用地了。从外界看来,我占用的就是5亩地。但实际用到的才1亩地的住房+配房的面积。

    所以得出来:我实际占用的地=我盖主房的地方(- buffers/cache)= 院子里的地(used)-菜园占地     (buffers+cached)

    buffers/cached可以分为两部分 + buffers/cached 和 - buffers/cached。

    总的物理内存=|+ buffers/cached|+|- buffers/cached|;

    - buffers/cached:程序角度上看已经使用的内存数,这才是程序实实在在用掉的内存数。

    + buffers/cached:程序角度上看未使用、可用的内存数。

  四、小结

    实际上来说,程序占用的真正内存就是:- buffers/cached 的数值。

    所以看系统,真正已经用的内存数:used-(buffers+cached)的值。

                          真正未用到的内存数:free+buffers+cached  的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值