1. 启动 top
并查看多核 CPU
-
直接运行
top
:bash
top
-
按下数字
1
(键盘上的1
键)可 切换显示所有 CPU 核心的独立利用率。
2. 解读 top
中的 CPU 核心利用率
-
默认汇总显示(按下
1
前):%Cpu(s): 10.5 us, 2.3 sy, 0.0 ni, 86.7 id, 0.2 wa, 0.0 hi, 0.3 si, 0.0 st
us
:用户态程序占用 CPU 时间百分比sy
:内核态程序占用 CPU 时间百分比id
:空闲 CPU 时间百分比- 其他参数见下文详细说明。
-
展开多核显示(按下
1
后):%Cpu0 : 4.7 us, 1.3 sy, 0.0 ni, 91.6 id, 1.7 wa, 0.3 hi, 0.3 si, 0.0 st %Cpu1 : 5.7 us, 1.3 sy, 0.0 ni, 91.3 id, 1.3 wa, 0.3 hi, 0.0 si, 0.0 st ...
- 每个核心(如
Cpu0
、Cpu1
)独立显示利用率。
- 每个核心(如
3. top
中 CPU 指标的详细含义
缩写 | 全称 | 说明 |
---|---|---|
us | User Space | 用户态程序(非内核)占用的 CPU 时间,如 Java、Python 应用。 |
sy | Kernel Space | 内核态程序占用的 CPU 时间,如系统调用、中断处理。 |
ni | Nice Time | 调整过优先级的用户态程序占用的 CPU 时间。 |
id | Idle | 空闲时间,值越高说明 CPU 越空闲。 |
wa | I/O Wait | CPU 等待 I/O 操作完成的时间,值高可能表示磁盘或网络瓶颈。 |
hi | Hardware Interrupt | 处理硬件中断的时间(如键盘、网卡)。 |
si | Software Interrupt | 处理软件中断的时间(如系统定时器)。 |
st | Steal Time (仅虚拟机) | 虚拟机被宿主机抢占的 CPU 时间,值高说明虚拟机资源不足。 |
4. 关键操作技巧
- 按 CPU 使用率排序进程:
按下大写P
(Shift + P),按 CPU 使用率从高到低排序进程。 - 查看某个进程的 CPU 亲和性(绑定的核心):
- 按下
f
进入字段管理界面。 - 使用方向键找到
P (Last Used Cpu)
,按空格选中。 - 按
q
退出,查看进程所在的 CPU 核心。
- 按下
- 监控特定核心的负载:
结合taskset
或numactl
将进程绑定到指定核心后,观察该核心利用率。
5. 替代工具(更直观)
a. htop
更友好的交互式工具,直接显示多核利用率(需安装):
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
htop
- 界面特点:
- 横向条形图显示每个核心负载。
- 颜色区分不同指标(用户态/内核态)。
b. mpstat
查看每个核心的详细统计(需安装 sysstat
):
sudo apt install sysstat # Debian/Ubuntu
sudo yum install sysstat # CentOS/RHEL# 每 2 秒刷新一次,共 5 次
mpstat -P ALL 2 5
6. 如何判断 CPU 瓶颈?
us
持续高:应用程序代码负载高,需优化代码或扩容。sy
持续高:内核操作频繁,可能系统调用过多或驱动问题。wa
持续高:I/O 等待时间长,检查磁盘或网络性能。st
持续高(虚拟机):宿主机资源不足,需迁移或扩容虚拟机。
总结
- 多核 CPU 利用率需关注 各核心负载是否均衡。
- 使用
top
的1
键切换多核视图,htop
或mpstat
提供更直观分析。 - 结合进程级的 CPU 使用情况(
P
键排序)定位具体高负载进程。