温馨提示×

debian cpustat如何分析性能

小樊
40
2026-09-07 16:53:28
栏目: 智能运维

在 Debian 系统上,cpustat 通常是指 sysstat 工具包中的 mpstat / sar,或者是指 pcp(Performance Co-Pilot)里的 cpustat,还有可能是 Go 写的 cpustat 工具。下面我按最常见、最实用的方式给你讲,重点放在 Debian 上如何用它来分析 CPU 性能。


一、先确认你用的是哪个 cpustat

1️⃣ sysstat 中的 mpstat(最常见)

which mpstat

如果有:

/usr/bin/mpstat

那你现在用的是 sysstat,不是传统 Solaris 的 cpustat。

安装:

sudo apt install sysstat

二、用 mpstat 分析 CPU 性能(推荐)

1️⃣ 基本用法

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

2️⃣ 关键字段解释(性能分析核心)

字段 含义 性能问题判断
%usr 用户态 CPU 高 → 应用程序 CPU 密集
%sys 内核态 CPU 高 → 系统调用、驱动、锁
%iowait IO 等待 高 → 磁盘/存储瓶颈
%soft 软中断 高 → 网络、网卡处理
%steal 被虚拟机偷走 高 → 云主机超卖
%idle 空闲 低 → CPU 不够

三、常见性能场景分析

✅ 场景 1:CPU 跑满

mpstat -P ALL 1
  • %usr 高 → 应用问题(Java / Python / C++)
  • %sys 高 → 内核 / 锁 / 系统调用

✅ 场景 2:系统卡但 CPU 不高

重点看:

%iowait
iostat -x 1

如果 %iowait > 20%,说明 磁盘瓶颈


✅ 场景 3:软中断高(网络服务器)

%soft 高
cat /proc/softirqs

常见于:

  • 高并发网络
  • 网卡 RSS 不均衡

✅ 场景 4:虚拟机性能差

%steal 高

说明宿主机抢 CPU,和你的程序无关。


四、结合其他工具一起看(很重要)

1️⃣ 看是谁在用 CPU

top
# 或
htop

2️⃣ 看上下文切换

vmstat 1

关注:

  • cs(上下文切换)
  • r(运行队列)

3️⃣ 看负载

uptime
load average: 4.50, 3.20, 2.10

超过 CPU 核数 → 排队


五、如果你说的是“真正的 cpustat”

Debian 默认没有 Solaris 的 cpustat,但你可以装 pcp

sudo apt install pcp

使用:

cpustat 1

特点:

  • 进程 / 线程 统计 CPU
  • 类似 top,但更底层

六、一句话总结

Debian 上分析 CPU 性能,优先用 mpstat + top + iostat,看 %usr / %sys / %iowait / %steal 就能定位 90% 的问题。

如果你愿意,可以把你的:

  • mpstat 1 输出
  • top 截图

贴出来,我可以直接帮你分析是哪类瓶颈

0