美文网首页
Linux-free命令学习

Linux-free命令学习

作者: 骑着乌龟去看海 | 来源:发表于2018-06-19 22:19 被阅读20次

一、前言

  Linux中free命令用于分析和统计内存信息(空闲,已用,交换),也就是显示系统中可用的和已用的物理内存及交换内存的总量,以及内核用到的缓存空间,而这些信息是从 /proc/meminfo 中得到的,不过free命令和top命令有些地方很像。

二、free命令使用

接下来,我们直接通过例子来学习该命令的使用。

1. 默认情况下,直接运行free命令:
[mrzhang@192 ~]$ free
              total        used        free      shared  buff/cache   available
Mem:        3823720      891824     2255436      137028      676460     2527420
Swap:       4063228           0     4063228
[mrzhang@192 ~]$ 

由于我们以及学习过top命令,对这些内存项应该比较了解了,这里直接复制网上的一段内容,来源 https://linux.cn/article-9232-1.html

  1. total - 安装的内存的总量(等同于 /proc/meminfo 中的 MemTotal 和 SwapTotal)
  2. used - 已使用的内存(计算公式为:used = total - free - buffers - cache)
  3. free - 未被使用的内存(等同于 /proc/meminfo 中的 MemFree 和 SwapFree)
  4. shared - 通常是临时文件系统使用的内存(等同于 /proc/meminfo 中的 Shmem;自内核 2.6.32 版本可用,不可用则显示为 0)
  5. buffers - 内核缓冲区使用的内存(等同于 /proc/meminfo 中的 Buffers)
  6. cache - 页面缓存和 Slab 分配机制使用的内存(等同于 /proc/meminfo 中的 Cached 和 Slab)
  7. buff/cache - buffers 与 cache 之和
  8. available - 在不计算交换空间的情况下,预计可以被新启动的应用程序所使用的内存空间。与 cache 或者 free 部分不同,这一列把页面缓存计算在内,并且不是所有的可回收的 slab 内存都可以真正被回收,因为可能有被占用的部分。(等同于 /proc/meminfo 中的 MemAvailable;自内核 3.14 版本可用,自内核 2.6.27 版本开始模拟;在其他版本上这个值与 free 这一列相同)
2. 更改显示的内存单位

默认情况下,显示的内存的单位是kb单位,如果有需要,我们可以选择更改内存的显示单位:

-b 以字节为单位显示
-k 以KB为单位显示
-m 以MB为单位显示
-g 以GB为单位显示
--tera 以TB为单位显示
[mrzhang@192 ~]$ free -k
              total        used        free      shared  buff/cache   available
Mem:        3823720      872568     2268432      138624      682720     2544528
Swap:       4063228           0     4063228
[mrzhang@192 ~]$ free -b
              total        used        free      shared  buff/cache   available
Mem:     3915489280   896196608  2320519168   141623296   698773504  2603241472
Swap:    4160745472           0  4160745472
[mrzhang@192 ~]$ free -g
              total        used        free      shared  buff/cache   available
Mem:              3           0           2           0           0           2
Swap:             3           0           3
[mrzhang@192 ~]$ 

并且,我们可以通过-h 来提高格式的可读性:

[mrzhang@192 ~]$ free -gh
              total        used        free      shared  buff/cache   available
Mem:           3.6G        887M        2.1G        135M        666M        2.4G
Swap:          3.9G          0B        3.9G
[mrzhang@192 ~]$ 

使用该参数,free会自动决定使用什么单位来显示内存的各项数据。

3. free命令持续运行

默认情况下,free命令输出的结果只有一次数据就结束了,如果我们想让内存信息持续展示,可以通过-s 参数设置间隔时间,比如每隔3秒运行一次:

[mrzhang@192 ~]$ free -s 3
              total        used        free      shared  buff/cache   available
Mem:        3823720      928332     2212868      138384      682520     2488980
Swap:       4063228           0     4063228

              total        used        free      shared  buff/cache   available
Mem:        3823720      928400     2212800      138384      682520     2488912
Swap:       4063228           0     4063228

并且如果我们想让free命令只执行固定的次数,那么可以通过-c 参数指定指定的次数:

[mrzhang@192 ~]$ free -s 3 -c 2
              total        used        free      shared  buff/cache   available
Mem:        3823720      938632     2202504      138432      682584     2478616
Swap:       4063228           0     4063228

              total        used        free      shared  buff/cache   available
Mem:        3823720      939192     2202020      138356      682508     2478132
Swap:       4063228           0     4063228
[mrzhang@192 ~]$ 

free命令会在执行完相应的次数之后自动终止。

4. free内存的计算基于1000,而不是1024

如果我们指定 free 用 MB 来显示内存(用 -m 参数),但又想基于 1000 来计算结果,可以用 --si 这个参数来实现:

[mrzhang@192 ~]$ free -mh
              total        used        free      shared  buff/cache   available
Mem:           3.6G        919M        2.1G        135M        666M        2.4G
Swap:          3.9G          0B        3.9G
[mrzhang@192 ~]$ free -mh --si
              total        used        free      shared  buff/cache   available
Mem:           3.8G        940M        2.2G        139M        684M        2.5G
Swap:          4.1G          0B        4.1G
[mrzhang@192 ~]$ 
5. 使用free命令显示每一列的总和

我们可以使用 -t 参数来显示每一列的总和:

[mrzhang@192 ~]$ free -t
              total        used        free      shared  buff/cache   available
Mem:        3823720      941916     2198804      138840      683000     2474928
Swap:       4063228           0     4063228
Total:      7886948      941916     6262032
[mrzhang@192 ~]$ 

另外,free的另一个参数 -l 会显示最低和最高的内存统计,并且默认情况下,缓冲/缓存内存是同时输出的,为了取消缓冲和缓存内存的输出,可以使用-w 命令。

[mrzhang@192 ~]$ free -l
              total        used        free      shared  buff/cache   available
Mem:        3823720      938672     2197000      141020      688048     2475612
Low:        3823720     1626720     2197000
High:             0           0           0
Swap:       4063228           0     4063228
[mrzhang@192 ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.6G        913M        2.1G        135M        669M        2.4G
Swap:          3.9G          0B        3.9G
[mrzhang@192 ~]$ free -wh
              total        used        free      shared     buffers       cache   available
Mem:           3.6G        914M        2.1G        135M        2.1M        667M        2.4G
Swap:          3.9G          0B        3.9G
[mrzhang@192 ~]$ 

最后,我们大致看下free命令的帮助文档,free --help

Usage:
 free [options] 

Options:
 -b, --bytes         show output in bytes
 -k, --kilo          show output in kilobytes
 -m, --mega          show output in megabytes
 -g, --giga          show output in gigabytes
     --tera          show output in terabytes
 -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
 -w, --wide          wide output

     --help     display this help and exit
 -V, --version  output version information and exit

可以看到,我们上文所说的所有参数,在帮助文档中都有对应的简单释义,如果想了解更多,可以自行 man free

本文参考自:https://linux.cn/article-9232-1.html

相关文章

网友评论

      本文标题:Linux-free命令学习

      本文链接:https://www.haomeiwen.com/subject/xwbzeftx.html