直接按大写M键可使top按%MEM降序排列,右上角显示“Sort field: %MEM”即生效;若无效,可能因误按小写m、终端不支持Shift或版本差异;%MEM反映内存占比,RSS(实际物理内存用量)需用ps命令或top字段管理查看。

直接按大写 M 键,top 就会切换到按内存使用率(%MEM)降序排列,内存占用最高的进程出现在最上面。
确认排序是否生效
top 界面右上角会显示类似 Sort field: %MEM 的提示;如果没看到,说明没切成功。常见原因包括:误按了小写 m(在部分版本中是关闭内存统计行)、终端不支持 Shift 组合键、或当前 top 版本对大小写响应不一致。
区分 %MEM 和实际物理内存(RSS)
%MEM 是进程占用内存占总物理内存的百分比,直观但受系统总内存影响;如果你更关心绝对内存用量(比如谁真正吃掉了几百 MB 物理内存),top 本身不支持直接按 RSS 排序。可行做法有:
- 运行 ps -eo pid,rss,comm --sort=-rss | head -10 查看 RSS 最大的前 10 个进程
- 在 top 中按 f 进入字段管理,启用 RSS 列,再手动观察(RSS 单位是 KB)
- 用 top -o %MEM 启动时就按内存百分比排序,避免交互操作
筛选和过滤内存大户
排序后常会看到僵尸进程(STAT 显示 Z)或低优先级后台服务排在前面,它们的 %MEM 可能非零但已不活跃。建议结合以下操作进一步聚焦:
- 按 u 输入用户名,只看某用户下的进程
- 按 o 输入 %mem>5,只显示内存占用超 5% 的进程
- 按 c 展开完整命令路径,识别真实程序而非通用名(如 java → 实际 jar 包路径)
脚本或自动化场景推荐替代方案
交互式 top 不适合写进脚本。需要稳定输出时,优先用:
- ps aux --sort=-%mem | head -10(按 %MEM 降序)
- ps -eo pid,%mem,rss,comm --sort=-rss | head -10(按 RSS 降序)
- 配合 awk 或 grep 提取关键字段,例如:ps aux --sort=-%mem | awk 'NR


















