在日常系统运维或性能调优过程中,我们经常需要快速定位哪些进程占用了过多的 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
等工具进行深度诊断。欢迎留言交流!