在 Linux 系统管理中,CPU 使用率是衡量系统性能的核心指标之一,它直接反映了 CPU 资源的利用情况,帮助管理员快速定位性能瓶颈、排查异常进程,以及优化系统负载,本文将详细介绍 Linux 系统中查看 CPU 使用率的常用命令、参数解析及实际应用场景,助您全面掌握 CPU 性能监控技巧。

基础命令:top——动态监控的“第一视角”
top 命令是 Linux 系统中最常用的实时性能监控工具,能够动态展示 CPU、内存、进程等资源的使用情况,默认情况下,top 每隔 3 秒刷新一次数据,适合快速观察系统整体负载变化。
1 基本用法与界面解读
直接输入 top 命令后,会进入交互式界面,顶部显示系统概览信息,中部为进程列表,底部为交互命令提示。
-
顶部系统信息:
top - 10:23:45 up 5 days, 3:12: 系统运行时间。users: 2, load average: 0.20, 0.30, 0.15: 当前登录用户数及 1 分钟、5 分钟、15 分钟的平均负载(负载值理想情况下应不超过 CPU 核心数)。Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie: 进程总数及各状态进程数量。%Cpu(s): 5.3 us, 2.1 sy, 0.0 ni, 92.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st: CPU 使用率核心指标,需重点关注:us(user space): 用户空间占用 CPU 百分比,如应用程序计算任务。sy(system): 内核空间占用 CPU 百分比,如系统调用、进程调度。ni(nice): 优先级进程占用 CPU 百分比(通过nice命令调整优先级的进程)。id(idle): CPU 空闲百分比,若长期接近 100%,说明 CPU 负载较低。wa(I/O wait): 等待 I/O 操作(如磁盘读写)的 CPU 时间占比,若过高需检查磁盘性能。hi(hardware interrupts)/si(software interrupts): 硬件/软件中断占用 CPU 时间,通常较低,若异常需检查硬件驱动或系统调用。st(steal time): 虚拟机中被其他虚拟机占用的时间(仅宿主机可见)。
-
中部进程列表:默认按
%CPU降序排列,展示进程 ID(PID)、用户、CPU 占用、内存占用、命令等信息,可通过P键(大写)按 CPU 使用率排序,M键按内存使用率排序。
2 常用交互命令
q: 退出top。c: 切换命令名与完整路径显示。k: 终止指定进程(需输入 PID)。r: 重新设置进程优先级(需输入 PID 和nice值)。1: 切换 CPU 核心视图(单核/多核详情)。
进阶命令:htop——更友好的可视化监控工具
htop 是 top 的增强版,以彩色界面、交互操作和更丰富的功能著称,适合需要精细化监控的场景,若系统未安装,可通过 sudo apt install htop(Debian/Ubuntu)或 sudo yum install htop(CentOS/RHEL)安装。
1 界面优势与功能亮点
- 彩色区分:不同颜色代表不同状态(如绿色为正常,红色为高负载)。
- 功能键提示:顶部直接显示 F1-F10 功能键作用,无需记忆快捷键。
- 进程树视图:按
F5或t键可展开进程树,直观查看父子进程关系,适合分析依赖进程的资源占用。 - 实时参数调整:通过
F2进入设置界面,可自定义列显示(如添加线程数、虚拟内存等)、排序规则等。 - 鼠标支持:支持鼠标点击选择进程、终止进程,操作更便捷。
2 CPU 相关操作
- 按
F2进入设置,选择Columns添加CPU%列,默认已包含。 - 按
F3搜索特定进程,快速定位高 CPU 占用任务。 - 按
s键可设置刷新间隔,默认 1.5 秒,适合高频监控场景。
精准查询:ps——静态进程快照
ps 命令用于查看当前进程的静态快照,适合结合 grep 精准筛选特定进程的 CPU 使用情况。
1 常用参数组合
-
ps aux: 显示所有进程的详细信息(包括用户、CPU、内存、命令等),%CPU列为进程 CPU 占用率。
ps aux | grep nginx
该命令可筛选所有包含
nginx的进程,并查看其 CPU 占用。 -
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu: 按自定义格式输出进程,并按 CPU 使用率降序排序。-eo: 指定输出列(进程 ID、父进程 ID、命令、CPU 占用、内存占用)。--sort=-%cpu: 按 CPU 占用率降序排列, 表示降序。
2 结合 sort 与 head 提取 Top 进程
若需查看 CPU 占用率最高的前 5 个进程,可执行:
ps aux --sort=-%cpu | head -6
(head -6 包含表头,实际进程为前 5 行)
历史统计:sar——系统行为分析利器
sar(System Activity Reporter)是 Linux 系统中记录历史性能数据的工具,需安装 sysstat 包(sudo apt install sysstat),通过 sar 可查看过去某段时间的 CPU 使用率趋势,适合分析长期性能问题。
1 常用查看命令
-
sar -u: 查看 CPU 使用率历史记录,默认显示今日数据。sar -u -s 10:00:00 -e 18:00:00 # 查看 10:00-18:00 的 CPU 使用率
输出中包含
%user、%system、%iowait等指标,%idle` 低说明 CPU 长期繁忙。
-
sar -u -f /var/log/sysstat/saXX: 查看指定文件的历史数据(saXX为按日期命名的文件,如sa23表示 23 点的数据)。
2 实时监控模式
sar -u 1 5 # 每秒采样一次,共采样 5 次
输出结果可实时反映 CPU 短期负载变化,适合突发性能问题排查。
专项分析:mpstat——多核 CPU 细分监控
mpstat 是 sysstat 包中的工具,专门用于分析多核 CPU 的每个核心的使用情况,适合定位特定核心的性能瓶颈。
1 基本用法
mpstat: 查看所有核心的平均 CPU 使用率。mpstat -P ALL: 查看每个核心的详细使用情况,包括%usr(用户空间)、%sys(内核空间)、%idle(空闲)等。
2 实例输出解读
$ mpstat -P ALL 1 2 Linux 5.4.0-80-generic (ubuntu) 10/23/23 _x86_64_ (2 CPU) 10:23:45 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 10:23:46 AM all 5.02 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 93.47 10:23:46 AM 0 3.03 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 95.96 10:23:46 AM 1 7.07 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 90.91
all: 所有核心的平均值。0/1: 分别代表 CPU0 和 CPU1 的核心数据,若某个核心usr或sys占用显著高于其他核心,可能是该核心上运行了高负载进程。
综合应用:排查高 CPU 占用场景
当系统 CPU 使用率过高时,可通过以下步骤定位问题:
- 初判整体负载:运行
top或htop,观察load average和%Cpu(s)中的us、sy、wa值,若us过高,说明用户进程异常;sy过高需检查内核进程;wa过高则需优化磁盘 I/O。 - 定位高负载进程:通过
ps aux --sort=-%cpu或htop(按 CPU 排序)找到占用 CPU 最高的进程,记录其 PID 和命令名。 - 分析进程行为:若为业务进程,检查是否有死循环、算法效率低等问题;若为系统进程(如
kworker、rcu),需结合日志(dmesg)或工具(strace)分析系统调用异常。 - 多核异常排查:使用
mpstat -P ALL检查是否有特定核心负载过高,可能是进程绑定 CPU(taskset命令)或硬件问题。 - 历史趋势分析:通过
sar -u查看历史数据,判断是突发负载还是持续增长,后者需考虑扩容或优化。
Linux 系统提供了丰富的 CPU 使用率监控工具,从基础的 top、ps 到专业的 htop、sar、mpstat,可满足不同场景的需求,掌握这些命令的参数与使用技巧,不仅能快速定位性能瓶颈,还能为系统优化提供数据支撑,在实际操作中,需结合系统负载、进程状态和历史趋势综合分析,避免单一指标误判,从而保障系统的稳定运行。




















