在Linux系统中,内存管理是系统性能优化的核心环节之一,而free命令作为查看内存使用状态的基础工具,因其简洁高效的特点被广泛使用,本文将详细介绍free命令的功能、参数选项、输出解读及实际应用场景,帮助用户全面掌握这一实用工具。

free命令的基本功能与语法
free命令主要用于显示系统中物理内存、交换内存(Swap)的使用情况,以及内核缓冲区的占用数据,其基本语法为:
free [选项]
在不携带任何选项时,free命令会以易读的单位(如KB、MB)输出内存概览,默认刷新间隔为3秒(部分系统可能不同)。
核心参数选项解析
free命令支持多种参数,可满足不同场景下的查看需求,以下是常用参数及其作用:
| 参数 | 长格式 | 说明 |
|---|---|---|
-b |
--bytes |
以字节为单位显示内存数据 |
-k |
--kilo |
以KB为单位显示(默认) |
-m |
--mega |
以MB为单位显示 |
-g |
--giga |
以GB为单位显示 |
-h |
--human |
以人类可读格式显示(自动选择KB/MB/GB) |
-s |
--seconds |
设置自动刷新间隔(单位:秒) |
-c |
--count |
设置刷新次数 |
-t |
--total |
显示内存使用总计行 |
-o |
--no-header |
不显示表头 |
free -h -s 2命令会以人类可读格式每2秒刷新一次内存使用情况,适合实时监控。
输出信息详解
free命令的输出内容可分为内存和交换区两大部分,以free -h为例,典型输出如下:

total used free shared buff/cache available
Mem: 7.7Gi 2.1Gi 4.2Gi 256Mi 1.4Gi 5.3Gi
Swap: 2.0Gi 0B 2.0Gi
内存(Mem)部分
- total:系统物理内存总量(如7.7Gi)。
- used:已使用的内存量,包括应用程序占用的内存和内核缓冲区。
- free:完全未被使用的内存量(4.2Gi)。
- shared:被多个进程共享的内存量(如256Mi,通常包括tmpfs等文件系统)。
- buff/cache:用于缓冲(buffer)和缓存(cache)的内存量(1.4Gi)。
- buffer:主要用于存储块设备数据的缓冲区,如磁盘块读写缓存。
- cache:用于缓存文件数据,加速文件访问。
- available:应用程序可用的内存量(5.3Gi),这是比
free更准确的可用内存参考值,因为它包含了可回收的缓存和缓冲区内存。
交换区(Swap)部分
- total:交换分区总大小(2.0Gi)。
- used:已使用的交换分区空间(0B)。
- free:剩余的交换分区空间(2.0Gi)。
实际应用场景
快速查看内存使用率
通过free -h可直观了解内存总量、已用及可用情况,判断是否需要释放内存,若available值持续较低,可能意味着内存不足,需检查进程占用。
监控内存实时变化
使用free -s 1(每秒刷新)可实时跟踪内存波动,适合调试内存泄漏或分析高负载场景下的内存行为。
区分“真实使用”与“缓存占用”
新手常误以为used高的系统内存不足,但实际上buff/cache中的内存可被系统快速回收。available值才是判断内存是否紧张的关键指标。
交换分区使用评估
若Swap的used值持续较高,说明系统频繁使用交换分区,可能导致性能下降(交换速度远低于物理内存),此时需考虑增加物理内存或优化内存使用。

注意事项
- 单位选择:默认以KB为单位,数值较大时可使用
-h参数自动适配单位,提升可读性。 - available与free的区别:
available是Linux内核提供的可用内存估算值,比free更准确,建议优先参考。 - 缓存回收:系统会根据内存压力自动回收
buff/cache中的内存,无需手动清理(如echo 3 > /proc/sys/vm/drop_caches仅在特殊调试时使用)。
通过合理运用free命令及其参数,用户可高效掌握Linux系统的内存状态,为系统优化和故障排查提供有力支持。



















