linux下用 free -m 查看内存说明

【背景】

    最近在做ES单机多实例实验的时候,在启动第二个节点时报了内存不足的问题,于是就查看了本机的内存参数,但是之前没有具体了解过,于是网上进行查询,看到下面这篇文章的解释,觉得挺好,就转到这里进行记录分享(其中有小编图片的加入和排版的规划)~

【介绍】

    我们在linux用free -m 查看linux内存使用情况。-m 参数就是用 M显示内容使用情况。这时回显会出现几个结果。


  一、从系统层面分析

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

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

    used:用掉的内存。

    free:空闲的物理内存。

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

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

  二、从程序的角度分析

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

    buffers:缓存内存数。

    cached:  缓存内存数。

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

  三、举个小例子

    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  的值。


【总结】

    遇到这些小问题,就要去查一查,搞一搞,总结一下,争取在i+1的道路上走的更远~

发布了170 篇原创文章 · 获赞 256 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/u013030601/article/details/78694120