可通过top、htop、ps、pidstat和sar五种命令监控Linux进程CPU占用:top实时动态排序,htop增强可视化,ps快照筛选,pidstat周期采样,sar分析历史数据。

如果您需要实时了解Linux系统中各个进程对CPU资源的占用情况,则可以通过内置的命令行工具进行监控。以下是几种常用且有效的方法:
一、使用top命令查看进程CPU占用
top命令是Linux系统中最基础的动态实时进程监控工具,它默认按CPU使用率降序排列进程,并持续刷新显示。
1、在终端中输入top并按下回车键,进入交互式界面。
2、观察界面顶部的CPU使用率汇总信息,重点关注%Cpu(s)行中的us(用户态)、sy(内核态)、id(空闲)等字段。
3、在进程列表中,PID列标识进程号,%CPU列显示该进程当前占用的CPU百分比。
4、按P键可按CPU使用率重新排序(默认即为此模式),按q键退出top。
二、使用htop命令查看进程CPU占用
htop是top的增强替代品,支持鼠标操作、彩色显示、垂直/水平滚动及树状进程视图,需预先安装。
1、若未安装,执行sudo apt install htop(Debian/Ubuntu)或sudo yum install htop(CentOS/RHEL)。
2、在终端中输入htop并回车,进入可视化界面。
3、CPU使用率以彩色条形图形式显示在顶部,各进程的%CPU值直接列于CPU%列中。
4、按F6选择排序字段,再按CPU%确认,即可按CPU占用率排序。
5、按F10或q退出htop。
三、使用ps命令结合排序筛选高CPU进程
ps命令适合一次性快照式查询,配合排序与过滤可快速定位CPU占用异常的进程。
1、执行ps aux --sort=-%cpu | head -n 11,列出CPU占用率最高的前10个进程(含表头)。
2、其中a表示显示所有用户的进程,u以用户友好的格式输出,x包含无控制终端的进程。
3、--sort=-%cpu表示按CPU使用率降序排列(减号代表降序),head -n 11仅取前11行(含标题行)。
四、使用pidstat命令按时间间隔监控特定进程
pidstat来自sysstat包,适用于周期性采样分析单个或多个进程的CPU使用趋势。
1、若未安装,运行sudo apt install sysstat(Debian/Ubuntu)或sudo yum install sysstat(CentOS/RHEL)。
2、执行pidstat -u 2 5,表示每2秒采集一次CPU使用数据,共采集5次。
3、输出中%usr为用户态CPU占比,%system为内核态CPU占比,%guest为运行虚拟机所占CPU。
4、如需监控指定PID,添加-p PID参数,例如pidstat -u -p 1234 1。
五、使用sar命令查看历史CPU使用情况
sar命令可读取系统日志中保存的性能数据,用于回溯分析过去一段时间内的CPU负载变化。
1、确保sysstat服务已启用并运行:sudo systemctl enable sysstat且sudo systemctl start sysstat。
2、执行sar -u 1 5,实时采集5次、每秒1次的CPU总体使用率。
3、执行sar -u -f /var/log/sysstat/saXX(XX为日期,如sa15表示15日),读取对应日期的历史记录。
4、输出中%idle值越低,说明CPU整体负载越高;%iowait显著升高可能暗示I/O瓶颈。











