
在日常系统运维或性能调优过程中,我们经常需要快速定位哪些进程占用了过多的 CPU 或内存资源。本文将介绍几种简单高效的方法,帮助你在 Linux 系统中找出资源消耗最高的前 N 个进程。
ps 命令查看资源占用最多的进程深色版本示例:查看 CPU 占用最高的前 10 个进程
深色版本深色版本示例:查看内存占用最高的前 10 个进程
深色版本📌 说明:
ps aux:显示所有进程的详细信息。a:显示所有终端上的进程。u:以用户友好的格式输出。x:包括不连接终端的进程。--sort=-%cpu:按 CPU 使用率降序排列(- 表示降序)。--sort=-%mem:按内存使用率降序排列。head -n 11:输出前 11 行(第 1 行是标题,后面 10 行是数据)。如果你的系统不支持 --sort 参数,也可以使用 sort 命令进行排序:
深色版本深色版本🔧 命令解析:
head -1:提取表头(如 USER、PID、%CPU 等)。grep -v PID:排除包含 "PID" 的标题行,避免被排序。sort -rn -k 3:-r:反向排序(从大到小)。-n:按数值排序。-k 3:以第 3 列(即 %CPU)为关键字排序。head -10:取前 10 条数据。top 命令动态查看top 是一个实时监控工具,非常适合交互式查看系统资源使用情况。
运行命令:
深色版本按下快捷键排序:
P:按 CPU 使用率排序(默认视图)。M:按内存使用率排序。T:按运行时间(TIME+)排序。退出:按 q 键退出 top 界面。
💡 小技巧:你也可以使用 htop(需安装),它提供更友好的界面和鼠标支持。
ps aux 输出字段解释字段 | 含义 |
|---|---|
USER | 进程所属用户 |
PID | 进程 ID |
%CPU | CPU 使用率 |
%MEM | 内存使用率 |
VSZ | 虚拟内存占用(KB) |
RSS | 物理内存占用(KB) |
TTY | 终端设备 |
STAT | 进程状态(S=休眠,R=运行,Z=僵尸) |
START | 启动时间 |
TIME+ | 累计 CPU 时间 |
COMMAND | 启动命令 |
`ps aux --sort=-%cpu掌握这些命令,能让你在服务器性能排查中事半功倍。建议将常用命令保存为别名(alias),例如:
深色版本加入 ~/.bashrc 或 ~/.zshrc 后,即可一键调用。
如需进一步分析,还可以结合 pidstat、htop、glances 等工具进行深度诊断。欢迎留言交流!