直接运行top可实时监控内存占用,关键看available(可用内存)和进程的%MEM、RES值;used高不等于紧张,buff/cache可回收,available持续偏低才说明内存吃紧。

直接运行 top 就能实时监控进程的内存占用,关键不是看“用了多少”,而是看“还能用多少”和“谁在用”。
重点看第四行的 MiB Mem(或 KiB Mem/GiB Mem)和进程列表中的 %MEM、RES 列
系统内存总览里:
-
total是物理内存总量 -
used包含缓存和实际占用,数值高不等于紧张 -
free是完全空闲的内存,Linux 很少让它保持高位 -
buff/cache是内核缓存,随时可回收,不算真正压力 -
available才是核心指标——它代表当前可立即分配给新进程的内存,持续偏低才说明内存吃紧
进程列表中要盯住三列:
-
%MEM:该进程占物理内存的百分比,按M键可升序/降序切换排序 -
RES(Resident Memory):实际驻留物理内存大小(单位通常是 KiB),比VIRT更反映真实开销 -
COMMAND:进程名,必要时配合c键展开完整命令路径,确认是不是预期程序
快速定位内存大户的操作
- 启动后直接按
M(大写),进程按%MEM从高到低排列 - 想只看某个用户(比如
www-data)的进程:按u,再输入用户名 - 想聚焦单个可疑进程:启动时加
-p PID,例如top -p 1234 - 若发现某进程
RES持续增长、%MEM长期高于 20%,且available低于总内存 10%,就要查它是否泄漏或配置过大
注意两个常见误区
- 不要盯着
used高就认为内存不足——Linux 主动用空闲内存做 cache 是正常行为 -
VIRT值很大(几个 GB)不一定危险,它包含已分配但未使用的虚拟地址空间,真正影响性能的是RES和available的匹配关系
基本上就这些。


















