在 Debian 系统上,cpustat 通常是指 sysstat 工具包中的 mpstat / sar,或者是指 pcp(Performance Co-Pilot)里的 cpustat,还有可能是 Go 写的 cpustat 工具。下面我按最常见、最实用的方式给你讲,重点放在 Debian 上如何用它来分析 CPU 性能。
which mpstat
如果有:
/usr/bin/mpstat
那你现在用的是 sysstat,不是传统 Solaris 的 cpustat。
安装:
sudo apt install sysstat
mpstat 1
每秒输出一次所有 CPU 的状态
示例:
Linux 6.1.0 (debian) 2026-01-15 _x86_64_
10:00:00 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:00:01 AM all 5.2 0.0 2.1 0.3 0.0 0.1 0.0 0.0 92.3
| 字段 | 含义 | 性能问题判断 |
|---|---|---|
%usr |
用户态 CPU | 高 → 应用程序 CPU 密集 |
%sys |
内核态 CPU | 高 → 系统调用、驱动、锁 |
%iowait |
IO 等待 | 高 → 磁盘/存储瓶颈 |
%soft |
软中断 | 高 → 网络、网卡处理 |
%steal |
被虚拟机偷走 | 高 → 云主机超卖 |
%idle |
空闲 | 低 → CPU 不够 |
mpstat -P ALL 1
%usr 高 → 应用问题(Java / Python / C++)%sys 高 → 内核 / 锁 / 系统调用重点看:
%iowait
iostat -x 1
如果 %iowait > 20%,说明 磁盘瓶颈
%soft 高
cat /proc/softirqs
常见于:
%steal 高
说明宿主机抢 CPU,和你的程序无关。
top
# 或
htop
vmstat 1
关注:
cs(上下文切换)r(运行队列)uptime
load average: 4.50, 3.20, 2.10
超过 CPU 核数 → 排队
Debian 默认没有 Solaris 的 cpustat,但你可以装 pcp:
sudo apt install pcp
使用:
cpustat 1
特点:
top,但更底层Debian 上分析 CPU 性能,优先用
mpstat + top + iostat,看%usr / %sys / %iowait / %steal就能定位 90% 的问题。
如果你愿意,可以把你的:
mpstat 1 输出top 截图贴出来,我可以直接帮你分析是哪类瓶颈。