按M键是最快最可靠的方式进入top后直接按大写字母M(Shift+M)按%MEM从高到低排序;%MEM反映占比,RES反映实际物理内存占用(KB),排查需两者结合;启动即排序用top -o %MEM,单位切换按E键,专注RES和%MEM,忽略VIRT与SHR。

按 M 键是最快最可靠的方式
进入 top 后直接按大写字母 M(Shift+M),界面会立刻按 %MEM 列从高到低重排进程。注意不是小写 m,小写无效;也不是数字 1 或其他键。这是所有主流 Linux 发行版(CentOS、Ubuntu、Debian、AlmaLinux 等)通用行为,无需额外配置或安装补丁。
%MEM 和 RES 哪个更反映真实内存压力?
%MEM 是百分比,适合快速定位“吃内存比例最高”的进程;RES(Resident Set Size)是实际占用的物理内存 KB 数,更适合判断“到底占了多少 MB/GB”。比如一个 Java 进程 %MEM 只有 2.1%,但 RES 是 1854320 KB(约 1.8 GB),它才是真正拖慢系统的元凶。排查内存过高时,应两个列一起看:%MEM 找异常比例,RES 看绝对值。
启动时直接按内存排序的命令写法
想跳过交互步骤,一启动就看到内存大户,用以下任一方式:
-
top -o %MEM—— 标准写法,适用于绝大多数 GNU/Linux 系统 -
top -o mem—— 某些旧版本或精简系统(如 Alpine)可能只认mem字段名 -
top -o RES—— 如果你更关心物理内存绝对值而非百分比
注意:macOS 的 top 不支持 -o 参数,得用 top -sort memusage,但那是另一套逻辑,不在 Linux 范围内。
容易被忽略的显示单位和干扰项
top 默认内存单位是 KB,数值大得吓人但难感知。按 E 键可循环切换单位(KB → MB → GB → TB),建议切到 MB 或 GB 再观察。另外别被 VIRT 和 SHR 带偏:VIRT 包含已分配但未使用的虚拟内存、swap、共享库映射,不能代表实际压力;SHR 是共享内存,多个进程共用的部分,不应全算在单个进程头上。真正要盯死的是 RES 和 %MEM。











