zoukankan      html  css  js  c++  java
  • (2)free详解 (每周一个linux命令系列)

    (2)free详解 (每周一个linux命令系列)

    linux命令 free详解


    引言:今天的命令是用来看内存的free

    free

    换一个套路,我们先看man free中对free的描述:

    
    Display amount of free and used memory in the system
    
    

    翻译:显示系统中使用的和未用的内存数量

    我们再来看一下命令执行结果

                  total        used        free      shared  buff/cache   available
    Mem:       16131568     8461796     1418932      848140     6250840     6352668
    Swap:       8191996          24     8191972
    
    

    man free中对各个表头的解释如下

        free displays the total amount of free and used physical and swap
           memory in the system, as well as the buffers and caches  used  by
           the kernel. The information is gathered by parsing /proc/meminfo.
           The displayed columns are:
    
           total  Total  installed  memory  (MemTotal   and   SwapTotal   in
                  /proc/meminfo)
    
           used   Used memory (calculated as total - free - buffers - cache)
    
           free   Unused memory (MemFree and SwapFree in /proc/meminfo)
    
           shared Memory  used  (mostly)  by  tmpfs (Shmem in /proc/meminfo,
                  available on kernels 2.6.32,  displayed  as  zero  if  not
                  available)
    
           buffers
                  Memory used by kernel buffers (Buffers in /proc/meminfo)
    
           cache  Memory  used  by the page cache and slabs (Cached and Slab
                  in /proc/meminfo)
    
           buff/cache
                  Sum of buffers and cache
    
           available
                  Estimation of how much memory is  available  for  starting
                  new  applications,  without swapping. Unlike the data pro‐
                  vided by the cache or free fields, this field  takes  into
                  account  page cache and also that not all reclaimable mem‐
                  ory slabs will be reclaimed due  to  items  being  in  use
                  (MemAvailable in /proc/meminfo, available on kernels 3.14,
                  emulated on kernels 2.6.27+, otherwise the same as free)
    

    我们来分别解释一下(其实就是翻译一下),

    free命令显示系统中所有使用的和未使用的物理内存和交换分区的数量(这里大概提一下,交换区作用是的当内存不够的时候,部分不常使用的信息被暂时存储到交换区,待使用的时候再放到内存中),以及内核使用的缓冲区和缓存(buffer和caches分不清的话,可以理解为buffer是一些放在内存中还没有刷到磁盘的缓存数据,而caches是从磁盘中读出到内存的数据。这里不展开介绍了),这些信息来源于解析 /proc/meminfo ,显示的属性如下:

     - total        系统安装的总内存
     - used         使用的内存 计算方法为:total - free - buffers - cache
     - free         未使用的内存 
     - shared       (最可能是)被tmpfs文件系统使用的内存 一般不会用到
     - buffers      buffers使用的内存数
     - cache        cache和slab使用的内存数(slab是linux下的一种内存分配机制,可以避免频繁的分配同类内存,即可以循环利用)
     - buff/cache   buffers和cache的和
     - available    估计有多少内存在启动新的应用时可以被用到
    

    接下来我们学习一下free可携带的参数

    Options:
     -b, --bytes         show output in bytes           使用字节显示
     -k, --kilo          show output in kilobytes       使用kb显示
     -m, --mega          show output in megabytes       使用mb显示
     -g, --giga          show output in gigabytes       使用gb显示
         --tera          show output in terabytes       使用tb
     -h, --human         show human-readable output     使用人类易读的方式
         --si            use powers of 1000 not 1024    使用一千字节计数
     -l, --lohi          show detailed low and high memory statistics   显示最高最低的统计信息
     -t, --total         show total for RAM + swap          显示物理内存和交换区总数
     -s N, --seconds N   repeat printing every N seconds    每几分钟重复显示一次
     -c N, --count N     repeat printing N times, then exit 重复输出n次然后退出(每秒一次)
     -w, --wide          wide output    buffers和cache会分开显示
    
         --help     display this help and exit          帮助
     -V, --version  output version information and exit 版本信息
    

    常用命令运行结果如下:

    free -h
                  total        used        free      shared  buff/cache   available
    Mem:            15G        8.1G        1.2G        836M        6.1G        6.0G
    Swap:          7.8G         24K        7.8G
    dev1:~$ free -s 5
                  total        used        free      shared  buff/cache   available
    Mem:       16131568     8507812     1217156      856332     6406600     6299660
    Swap:       8191996          24     8191972
    
    ^C
    dev1:~$ free -hs 5
                  total        used        free      shared  buff/cache   available
    Mem:            15G        8.1G        1.2G        836M        6.1G        6.0G
    Swap:          7.8G         24K        7.8G
    
    ^C
    dev1:~$ free -w
                  total        used        free      shared     buffers       cache   available
    Mem:       16131568     8484328     1240332      856332           0     6406908     6323160
    Swap:       8191996          24     8191972
    
    dev1:~$ free -wh
                  total        used        free      shared     buffers       cache   available
    Mem:            15G        8.1G        1.2G        836M          0B        6.1G        6.0G
    Swap:          7.8G         24K        7.8G
    
    free -s 5 -c 2 //五秒运行一次,一共运行两次就退出
                  total        used        free      shared  buff/cache   available
    Mem:       16131568     8535816     1179516      856364     6416236     6271488
    Swap:       8191996          24     8191972
    
                  total        used        free      shared  buff/cache   available
    Mem:       16131568     8539412     1175796      856364     6416360     6267892
    Swap:       8191996          24     8191972
    

    其他的运行结果就不给了,给了的话就有点刷文章长度的嫌疑。大概说一下常用的结合用法吧

    1. -h 命令是比较常用的 可以与其他的-w -s -c配合使用
    2. -s 和-c是可以同时使用的 例如 free -s 5 -c 2 //五秒运行一次,一共运行两次
    3. --si 是需要和-b -k -m -g这些一起使用,不再以1024为进位标准而是1000
    4. 其他的请大家自由组合尝试吧
  • 相关阅读:
    理解Promise函数中的resolve和reject
    一行代码 去除滚动条
    django开发前准备工作
    居中select中的option选项
    setTimeout中第一个参数
    利用es6解构赋值快速提取JSON数据;
    需要删除远程分支,刚好有正在别的分支做的事情
    vue项目处理dpr和多屏幕适配问题
    使用mockjs模拟后端返回的json数据;
    移动端页面中点击input输入框的时候弹出的键盘将输入框挡住的问题
  • 原文地址:https://www.cnblogs.com/vinter/p/9699499.html
Copyright © 2011-2022 走看看