FREE(1)

名称
free - 显示系统中空闲内存和已用内存的总量

概述
free [选项 ...]

描述
free 显示系统中空闲和已用的物理内存和交换内存的总量，以及内核使用的缓冲区和缓存的大小。这些信息通过解析 /proc/meminfo 获得。可以显示的列有：

总计  可使用的内存总量（/proc/meminfo 中的 MemTotal 和 SwapTotal）。这包括物理内存和交换内存，减去被保留的空间和内核二进制代码占用的空间。

已用  已用或不可用的内存（计算方式为 总计 - 可用）

空闲  未使用的内存（/proc/meminfo 中的 MemFree 和 SwapFree）

共享  这部分内存（大多）由 tmpfs 使用（/proc/meminfo 中的 Shmem）

缓冲  内核缓冲区使用的内存（/proc/meminfo 中的 Buffers）

缓存  页缓存和 slab 使用的内存（/proc/meminfo 中的 Cached 和 SReclaimable）

缓冲/缓存
    缓冲 和 缓存 的和

可用  估计有多少内存可用于启动新应用程序，而无需交换。与 缓存 或 空闲 字段提供的数据不同，该字段考虑了页缓存，也考虑了并非所有可回收的内存 slab 都会被回收，因为有正在使用的项目（/proc/meminfo 中的 MemAvailable，在内核 3.14 上可用，在内核 2.6.27+ 上可模拟得到，否则与 空闲 相同）

选项

-b, --bytes
    使用字节显示内存大小。

-k, --kibi
    使用 KiB 显示内存大小。此为默认选项。

-m, --mebi
    使用 MiB 显示内存大小。

-g, --gibi
    使用 GiB 显示内存大小。

--tebi
    使用 TiB 显示内存大小。

--pebi
    使用 PiB 显示内存大小。

--kilo
    使用千字节显示内存大小。隐含启用 --si。

--mega
    使用兆字节显示内存大小。隐含启用 --si。

--giga
    使用吉字节显示内存大小。隐含启用 --si。

--tera
    使用太字节显示内存大小。隐含启用 --si。

--peta
    使用拍字节显示内存大小。隐含启用 --si。

-h, --human
    自动缩放所有输出字段的单位，使得最少显示三位数字，并显示单位。使用以下单位。

      B = 字节
      Ki = KiB (kibibyte)
      Mi = MiB (mebibyte)
      Gi = GiB (gibibyte)
      Ti = TiB (tebibyte)
      Pi = PiB (pebibyte)

    如果没有显示单位，并且您有 EiB 以上的 RAM 或交换，则数字是以 TiB 为单位，并且各个列可能不能和表头对齐。

-w, --wide
    切换到宽模式。宽模式生成的行长度超过 80 个字符。在此模式下，缓冲 和 缓存 在两个单独的列中显示。

-c, --count N
    重复输出结果 N 次。需要同时使用 -s 选项。

-l, --lohi
    显示详细的低位内存和高位内存统计。

-L, --line
    在一行内显示输出，经常和 -s 选项同时使用，来重复显示内存统计信息。

-s, --seconds 延迟
    连续地显示结果，每 延迟 秒一次。实际上， 延迟 可以是任何的浮点数，小数点可以用 "." 或 ","。使用了 usleep(3) 以支持微秒精度的延迟。

--si
    使用千字节、兆字节、吉字节等（1000 的幂），而不是 KiB、MiB、GiB（1024 的幂）。

-t, --total
    增加一行，显示各列的总计。

-v, --committed
    增加一行，显示内存分配 (commit) 限制和已分配/未分配的内存量。该行的 总计 列将显示内存分配限制。此行在禁用了内存超分配 (overcommit) 的情况下有意义。在启用内存超分配的系统中，空闲 值可能暂时显示为负数。这并非 bug，而是超分配机制的正常表现，表示系统承诺的内存总量已超过其虚拟地址空间总量。负值反映了系统内存超分配的程度。

--help
    显示帮助。

-V, --version
    显示版本信息。

文件

/proc/meminfo
    内存信息

错误
共享 列的值在 2.6.32 之前的内核中不可用，会被显示为零。

请将错误报告发送到 procps@freelists.org。

参见
ps(1), slabtop(1), top(1), vmstat(8).