• linux 中free命令


    1、free 命令的选项
    使用 free 命令查看服务器内存使用情况。
    free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]
    (1)-b,-k,-m,-g    表示输出显示的单位为 bytes, KB, MB, or GB,不添加选项的话默认以 KB 为单位显示
    (2)-h                 以人类可读的方式显示,即后边会自动带上单位
    (3)-l                  显示详细的低内存和高内存统计信息(增加了 Low 和High 这两行显示)
    (4)-o                 使用旧的格式显示(不显示 -/+buffers/cache 这一行)
    (5)-t                 增加显示 Total 行,Total = Mem + Swap
    (6)-s delay       每 delay 秒重复打印一次,delay 为具体的秒数
    (7)-c count       重复打印 count 次后退出,count 为具体的次数。需要配合 -s delay 使用
    (8)-V                  显示版本信息

    2、free命令显示结果
    以下是我们测试环境的参数:

    [root@bigdata zw]# free -m
                 total       used       free     shared    buffers     cached
    Mem:         32107      30414       1692          0       1962       8489
    -/+ buffers/cache:      19962      12144
    Swap:            0          0          0

    第一行Mem,表示物理内存统计:
    (1)total       物理内存总量,total = used + free
    (2)used      总计分配给缓存(包含 buffers 与 cache)使用的数量,但其中可能部分缓存并未实际使用
    (3)free       未被分配的内存
    (4)shared  共享内存,一般系统不会用到,总是0
    (5)buffers  系统分配但未被使用的 buffers 数量
    (6)cached  系统分配但未被使用的 cache 数量
    第二行-/+ buffers/cache:
    (1)used    实际使用内存,等于第一行的 used - buffers - cached
    (2)free     实际可用内存,等于第一行的 free + buffers + cached
    第三行Swap表示交换区的使用情况,也就是我们通常所说的虚拟内存。
    (1)total   总量
    (2)used  使用
    (3)free   空闲

    3、linux的缓存设计
    (1)Linux内存管理做了很多精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache 和 Page Cache,目的就是为了提升磁盘IO的性能。
    即 buffer (Buffer Cache) 用于存放要输出到磁盘的数据,而 cache(Page Cache) 是从磁盘读出存放到内存中等待以后使用的数据。它们的引入都是为了提升IO的性能。
    (2)从低速的块设备(硬盘)上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备(硬盘),从而提高系统的整体性能。
    Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了。
    (3)如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。
    因此,可以看出,buffers/cached真是百益而无一害,真正的坏处可能让用户产生一种错觉——Linux耗内存!其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区,你的内存所剩无几时,你应该感到高兴,因为Linux缓存了大量的数据,也许下一次你就访问的是这些缓存数据。
    windows系统内存是软件用多少给多少。而linux是你有多少物理内存,我全部用,正在运行的软件占用的活动内存之外,其余空闲内存基本都被用来预加载了一些其他系统或者应用数据。这样你打开软件的时候才会很快。
    内存闲着就是浪费,不如多放点数据,指不定下次需要访问的数据就能够直接从内存获得而不用访问很慢的硬盘。一定程度上说,linux和mac流畅度比windows好,这个占很重要一部分原因。

  • 相关阅读:
    Firefox OS 开发者预览版手机上线数小时即售罄
    7 款风格新颖的 jQuery/CSS3 导航
    大数据时代的 9 大KeyValue存储数据库
    jQuery 2.0发布,不支持IE 6/7/8
    全面理解面向对象的 JavaScript
    Hdoop入门
    Java Web 高性能开发,第 2 部分: 前端的高性能
    MySQL数据库存储引擎和分支现状
    11 个超棒的 jQuery 分步指引插件
    [扩展/新建swap]将文件或分区加载为swap
  • 原文地址:https://www.cnblogs.com/hello-wei/p/11671061.html
Copyright © 2020-2023  润新知