推荐用 free -h 而非 -m 或 -g,因其智能选择 kb/mb/gb 单位使数值更直观;mem 行中 available 列反映真正可用内存,swap used 非零表明内存吃紧;-t、-s、-c 可增强实用性;勿仅凭 used 判断内存压力。

直接在终端输入 free -h 就能以人类可读格式查看内存使用情况,系统会自动选择 KB、MB 或 GB 单位,让数字更直观易懂。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
为什么推荐用 -h 而不是 -m 或 -g
-h 不是简单地固定用 MB 或 GB,而是根据数值大小智能选单位。比如:空闲内存 1.2G 就显示为 1.2G,而缓存只有 896M 就显示为 896M,小到几 KB 的也会标成 4.2K。相比之下,-m 强制全用 MB,929MB 和 12MB 看起来差别不大;-g 则可能把小数值变成 0.0G,反而丢失细节。
看懂 free -h 输出的关键行
- Mem 行:物理内存整体情况,重点关注 available 列——这是真正可供新程序使用的内存,比 free 列更准确(因为内核会把部分 cache/buffer 动态回收)
- Swap 行:交换分区使用状态,如果 used 不为 0,说明物理内存已吃紧,系统开始动用硬盘当内存用,性能通常会下降
- 注意 buff/cache 是内核用于加速文件读写的临时缓存,不等于被“占用”,需要时会自动释放
配合其他选项提升实用性
- 加 -t 显示汇总行:
free -ht,最后一行给出 Mem+Swap 总和,方便快速估算资源上限 - 加 -s 2 每 2 秒刷新一次:
free -hs 2,适合观察内存波动,比如运行某个程序时的实时变化 - 加 -c 5 只刷 5 次就停:
free -hsc 5,避免信息刷屏,适合脚本或定时检查
常见误区提醒
- 不要只盯着 used 值高就认为内存不够——很多 used 是 buff/cache,实际压力要看 available 和 swap 是否启用
- 某些旧系统(如较老的 CentOS 6)可能不支持 -h,可退而用
free -m,效果接近但单位固定 - 输出中的 shared、buffers 等列日常监控很少用到,初学者可先聚焦 total、used、free、available、swap 这几列










