可用内存是否够用应看available列:≥总内存15%~20%一般正常,<10%或持续<500MB表明吃紧;Swap是否启用需看used值,为0表示未使用,>0且持续增长说明内存长期不足。

直接用 free -m 就能看到关键内存数据,重点看 available 和 Swap 两列,不需要算、也不用猜。
怎么看 available 才算“够用”
available 是系统真正能立刻分配给新进程的内存,它已经扣除了内核开销、预留页等,比 free 字段靠谱得多:
- 如果 available ≥ 总内存的 15%~20%,一般没问题;
- 低于 10%,比如总内存 4GB(4096MB),available 只有 300MB,说明内存吃紧,程序可能开始卡顿;
- 持续低于 500MB(无论总内存多大),尤其在业务高峰期,大概率需要干预。
Swap 是否启用,不能只看“有没有”,要看“动没动”
Swap 存在本身不等于有问题,关键是它是否被实际使用:
- Swap 行的 used 为 0:完全没动用 Swap,物理内存充足;
- used > 0 且缓慢上升:系统已开始把不活跃页换出到磁盘,是内存压力信号;
- used 持续增长 + available 持续下降:说明物理内存长期不足,Swap 正在被动承担压力,需查具体进程或考虑扩容。
一个快速判断组合命令
执行这一行,一次看清核心指标:
free -h && echo "——— 看这里 ———" && awk '/Mem:/ {printf "可用率: %.1f%%\n", $7/$2*100} /Swap:/ {printf "Swap使用: %s/%s\n", $3,$2}' /proc/meminfo
输出里会直接告诉你 available 占比和 Swap 实际用量,比人工心算快又准。
小提醒:别被 free 字段误导
第一行的 free 值只是未分配的空闲内存,不代表可用。Linux 会积极使用 buff/cache 加速 IO,这部分在需要时能快速释放——所以 always 优先盯 available,不是 free。


















