free -h以人类可读单位同时展示物理内存和swap使用概况,重点关注mem行的total、used、available(真正可用内存)及swap行的used(大于0表明内存不足并触发性能下降)。

free -h 是最直接、最常用的方式,它用人类易读的单位(如 MB、GB)同时展示物理内存和交换分区(swap)的使用概况。
看懂 free -h 输出的关键行
运行 free -h 后,重点关注三行:
-
Mem:代表物理内存。关注
total(总量)、used(已用)、available(真正可用)。注意:available比free更能反映系统当下可分配给新进程的内存,因为它已扣除不可回收的缓存。 -
Swap:代表交换分区(硬盘上的虚拟内存)。关注
total和used。若used大于 0,说明物理内存已不足,内核开始把不活跃页面换出到磁盘,这是性能下降的重要信号。 -
-/+ buffers/cache(旧版内核显示,部分新版已省略):这一行从应用视角重新计算内存:把
buffers和cached视为可快速回收的资源,因此used值更贴近程序实际占用量,free值更接近真实空闲量。
为什么推荐 -h 而不是 -m 或 -g
-h(human-readable)会自动选择最合适的单位(KB/MB/GB/TB),避免人为换算错误。例如总内存 16GB 时显示为 16Gi,而 2.3GB 应用占用显示为 2.3Gi,一目了然。用 -m 可能显示为 2345,反而需要心算。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
结合 /proc/meminfo 验证细节
如果 free -h 显示 available 偏低或 Swap used 异常升高,可进一步执行:
-
grep -E "^(MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree|Available)" /proc/meminfo—— 获取原始精确数值(单位 KB),确认内核对可用内存的判断依据; -
swapon --show或cat /proc/swaps—— 查看当前启用的 swap 设备及其优先级和状态。
小提醒:别只盯 used,要看 available 和 swap 是否激活
即使 Mem used 看似很高,只要 available 充足且 Swap used 为 0,系统就仍处于健康状态。反过来,哪怕 Mem used 只有 60%,但 available 接近 0 且 Swap used > 0,就说明内存压力已经真实存在,需排查进程或考虑扩容。










