linux查看 top N的内存占用的进程

立即检查哪些进程占用大量内存:

ps aux --sort=-%mem | head -20

或者使用 top 命令查看内存使用情况。

命令分步解析

这个命令可以拆解为三个部分,通过管道符 | 连接,作用是把前一个命令的输出,作为后一个命令的输入。

 
命令部分功能解释关键参数说明
ps aux 查看系统中所有进程的详细信息。 a:显示所有用户的进程。
u:以用户为主的格式显示(会包含 %MEM 列)。
x:显示包括不依赖终端(如后台服务)的所有进程。
--sort=-%mem 对 ps 命令的输出结果进行排序。 --sort=-%mem:按内存使用率(%MEM 列)进行降序排列。- 号代表倒序,即从高到低
head -20 只显示前面若干行的内容。 -20:限制只显示前20行的结果。

简单来说,这条命令的执行流程是:ps aux 先列出所有进程 → --sort=-%mem 将这些进程按内存使用率从高到低排序 → head -20 最终只输出排在最前面的20个进程。

ps aux 输出列的含义

执行 ps aux 后,你会看到类似下表的许多信息列:

列标题含义
USER 进程的所有者(哪个用户启动的)。
PID 进程的唯一ID号。
%CPU 进程占用CPU的百分比。
%MEM 进程占用物理内存的百分比,这是本命令排序的依据。
VSZ 进程使用的虚拟内存大小(单位:KB)。
RSS 进程实际占用的物理内存大小(单位:KB)。
TTY 进程在哪个终端上运行。“?”表示与终端无关。
STAT 进程状态(如:S-睡眠,R-运行,Z-僵尸进程等)。
START 进程启动的时间。
TIME 进程占用CPU的总时间。
COMMAND 启动该进程的命令名称或路径。

 

相关替代或进阶用法

  • 查看最耗CPU的进程:将排序字段改为 %CPU 即可。

    ps aux --sort=-%cpu | head -20
    
    
  • 动态实时监控:如果希望实时刷新查看(类似于任务管理器),可以使用 top 命令。进入 top 界面后,可以按 M 键来立即按内存使用率排序。

  • 查看完整排序列表:如果系统进程很多,可以去掉 head -20 的限制,并使用 less 分页查看。

    ps aux --sort=-%mem | less

     

总而言之,当你发现系统变慢或内存不足时,ps aux --sort=-%mem | head -20 是一个能帮你快速定位内存消耗大户的有效工具。

如果你想知道列表中某个特定进程(比如PID为1234的进程)的详细信息,或者想了解如何管理这些高内存占用的进程,我可以提供进一步的解释。

posted @ 2025-12-09 12:04  苹果芒  阅读(2)  评论(0)    收藏  举报