(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. 其他的请大家自由组合尝试吧
posted @ 2018-09-25 14:58  vinter_he  阅读(550)  评论(0编辑  收藏  举报