🧭说明
free 命令是 Linux 系统中用于查看系统内存(RAM)和交换空间(Swap)使用情况的重要工具。下面这张表格汇总了它的常用选项,方便快速查阅。
| 选项 | 说明 |
|---|---|
-h |
以人类易读的格式(如 K, M, G)显示单位,最常用。 |
-b / -k / -m / -g |
分别以字节(B)、千字节(KB)、兆字节(MB)、千兆字节(GB)为单位显示。 |
-t |
在输出结果中添加一行 总计(Total),显示物理内存与交换空间的总和。 |
-s N |
每隔 N 秒 自动刷新一次输出信息,用于持续观察(按 Ctrl+C 退出)。 |
-c N |
与 -s 选项结合使用,控制重复输出的 次数。 |
-l |
显示 详细 的低内存和高内存统计信息。 |
-w |
宽输出 模式,将缓冲(buffers)和缓存(cache)信息分开显示。 |
💡 基本使用与输出解读
在终端直接输入 free 命令会显示当前内存使用情况,默认以KB为单位。结合 -h 选项是实践中最常用的方式,能让数据更易读。
bash
free -h
命令输出通常如下所示:
total used free shared buff/cache available
Mem: 7.7G 2.1G 1.2G 345M 4.4G 5.1G
Swap: 2.0G 0B 2.0G
需要重点理解以下几个关键字段的含义:
-
Mem行(物理内存)
total:系统总的物理内存大小。used:已使用的内存量(这个值通常包括了应用程序使用的内存和系统缓存)。free:完全未被使用的内存量。buff/cache:被系统用作缓冲区 和缓存的内存。这部分内存在需要时(如运行新程序但空闲内存不足)可以被内核立即回收,所以它实际上是一种"磁盘性能加速器"。available:这是评估可用内存的关键指标 。它估算的是在不进行 Swap 交换的情况下,可供新启动应用程序使用的内存量。其值约等于free的内存加上可回收的buff/cache内存。因此,当要判断内存是否充足时,应主要参考此列而非free列。
-
Swap行(交换空间)
- 当物理内存不足时,系统会将物理内存中不活跃的页面移动到硬盘上预先划分的 Swap 空间,从而为更紧急的任务腾出物理内存。由于硬盘读写速度远慢于内存,过度的 Swap 使用会显著降低系统性能 。如果发现
Swap的used值持续增长,通常意味着物理内存已经不足,需要关注。
- 当物理内存不足时,系统会将物理内存中不活跃的页面移动到硬盘上预先划分的 Swap 空间,从而为更紧急的任务腾出物理内存。由于硬盘读写速度远慢于内存,过度的 Swap 使用会显著降低系统性能 。如果发现
💎 实用技巧与场景
-
实时监控内存变化
可以使用
-s选项让free命令定期刷新,这对于观察内存使用的动态变化很有帮助。例如,以下命令会每 3 秒刷新一次显示:bashfree -h -s 3 -
正确评估内存状态
不要被
free列很小的数值吓到,认为内存耗尽了。在 Linux 中,充分利用内存作为缓存是提高性能的标准做法 。一个健康且高效运行的系统,往往free内存很少,而buff/cache占用的内存较多。只要available列的值处于一个较大的、可接受的范围,就说明内存资源是充足的。