最直接有效的方式是运行 free -h,重点关注 mem 行的 available 值(真正可用内存)和 swap 行的 used 值(大于 0 表示已启用交换);辅以 swapon --show、cat /proc/swaps 和 lsblk | grep swap 查看 swap 设备详情;用 free -h -s 2 或 free -h -w -c 10 实时监控;再通过 top 或 htop 交叉验证进程级内存与 swap 使用情况。

最直接有效的方式是运行 free -h,它能同时清晰展示物理内存剩余量和 Swap 使用状态。
重点关注 available 和 Swap 的 used 列
执行 free -h 后,输出中两行最关键:
- Mem 行的 available 值:这才是真正可用于新程序的内存,不是 free 列。Linux 会把部分 buff/cache 当作可回收资源计入其中,所以 available 通常远大于 free。
- Swap 行的 used 值:只要它大于 0(比如显示 12M、456K 或非 0B),就说明系统已开始使用交换空间——这是物理内存紧张的明确信号。
确认 Swap 是否启用及具体设备
仅看 free 可能遗漏细节。用以下命令补全信息:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
-
swapon --show:列出所有已激活的 Swap 设备(分区或文件)、大小、已用容量和优先级。 -
cat /proc/swaps:显示原始配置,含挂载路径、类型(partition/file)、KB 单位的 size 和 used,适合脚本解析。 -
lsblk | grep swap:快速定位磁盘上标记为 swap 类型的分区。
持续观察内存与 Swap 动态变化
如果怀疑内存压力波动,可用刷新模式实时盯梢:
-
free -h -s 2:每 2 秒刷新一次,Ctrl+C 停止。 -
free -h -w -c 10:宽格式输出(分开显示 buffers/cache),共刷新 10 次。
辅助验证:用 top 或 htop 交叉比对
启动 top 后,顶部会显示 Mem 和 Swap 的总量与使用量;按 Shift+M 可按内存占用排序进程,观察哪些进程在大量消耗 RAM 或触发 Swap。
若已安装 htop(sudo apt install htop),界面更直观,内存条形图一目了然,Swap 使用量也直接标在底部状态栏。










