• linux free命令理解误区记录


    通常,我们会需要知道一台linux服务器内存总量,内存使用量以及内存剩余量,那么我们一般会想到free命令:

    (free默认显示的数值是以KB为单位的,如果想要以MB为单位显示,可以用free -m)

    以上图为例,看到输出后, 我们可能就会认为这台机器:内存总量为:7968712KB, 已使用:7852204, 剩余:116508

    (之前我就是这样认为的)

    不过今天在检查一台线上服务器的时候,发现通过free看到的已使用的内存总量,我们根本就没有使用那么多,而free所给我们展示的值是肯定不会错的,那这是为什么呢?

    答案只有从man free中寻找了,通过man我们发现free给我们提供了一些选项:

    -b 以byte为单位显示, -k 以kilobytes为单位显示, -m以 megabytes为单位显示

    -t 会给我们在加上一行显示内存总量当前情况(默认是没有的),所以如果要查看一台机器内存的总使用量,应该给free加上-t选项

    -o 选项用于控制是否显示缓存条件那一行,即上图的 -/+ buffers/cache 那一行 (不指定的时候是会显示的)

    -s 选项可以在使用free的时候每隔多少秒输出一次。

    所以,在使用free显示出系统当前的内存情况后,有这么几个计算公式来计算使用量与剩余量:

      used=total-free 即 total=used+free

      实际内存占用:used-buffers-cached即 total-free-buffers-cached

      实际可用内存:buffers+cached+free

    通过观察上图,我们发现,Total这行显示的是mem和swap累加的结果,

    而内存真正的使用量与剩余量,是“-/+ buffers/cache”这行的结果。

  • 相关阅读:
    二叉树计算叶子节点的计算问题
    操作系统中有关读者写者问题
    Java中关于CountDownLatch的使用
    Java中关于CyclicBarrier的使用
    将毫秒 换算成(天 时 分 秒 毫秒)
    数据库訪问技术之JDBC
    窥探开发人员与用户
    Cocos2d-x游戏开发之lua编辑器 Sublime 搭建,集成cocos2dLuaApi和自有类
    高速排序,归并排序,堆排序python实现
    svn 批量加入没有加入版本号控制的文件命令
  • 原文地址:https://www.cnblogs.com/yuxingfirst/p/3084667.html
Copyright © 2020-2023  润新知