%mem列显示进程占用物理内存的百分比,以free命令的mem: total为分母;可用top(shift+m)、ps(--sort=-%mem)或htop(f6选mem%)查看排序,且可通过free与ps数据手动验算验证。

直接看 %MEM 列,它就是每个进程占用物理内存的百分比——以系统总可用物理内存为分母计算得出。
用 top 实时查看内存占比
运行 top,默认按 CPU 排序;按下大写 M(Shift+M),列表立即按 %MEM 从高到低重排。重点关注这一列:
- %MEM:该进程当前占用的物理内存占整机总物理内存的百分比(例如 12.4 表示约 12.4%)
- RES:对应的实际字节数(KB),可换算成 MB/GB 验证比例是否合理
- VIRT 和 SHR 不参与 %MEM 计算,仅作参考
用 ps 获取静态快照并排序
适合脚本调用或快速筛查:
- 查前 15 名内存占比最高的进程:
ps aux --sort=-%mem | head -15 - 只显示关键字段(PID、命令名、%MEM、实际内存 KB):
ps -eo pid,comm,%mem,rss --sort=-%mem | head -10 - 注意:
%mem是小写,--sort=-%mem中的负号表示降序
用 htop 更直观地观察比例
安装后运行 htop,默认彩色显示,内存占比一目了然:
- 按 F6 → 选择
MEM%→ 回车,即按内存占比排序 - 右侧柱状图直接显示每个进程的 %MEM 占比宽度,视觉判断更快
- 支持鼠标滚轮、树形展开、过滤(F3)、搜索(F4)等操作
验证和深入:确认分母是否一致
%MEM 的“总内存”基准是 free 显示的 Mem: total 值(不含 swap,不含 buffers/cache 调整)。可用以下命令交叉核对:
- 查系统总物理内存:
free -b | awk 'NR==2{print $2}'(单位字节) - 查某进程 RES 值(KB):
ps -p 1234 -o rss= - 手动验算:
echo "scale=1; $(ps -p 1234 -o rss=) * 100 / $(free -b | awk 'NR==2{print $2}') " | bc—— 结果应与 %MEM 基本一致











