温馨提示×

ubuntu cpustat怎样分析

小樊
38
2026-10-21 09:49:11
栏目: 智能运维

在 Ubuntu 上,cpustat 通常指 sysstat 包中的 mpstat 类似工具,或者更常见的是 cpustat(由 Cloudflare 开发的性能分析工具)。下面分别说明,并重点讲如何分析。


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

1️⃣ Cloudflare 的 cpustat(常见)

cpustat

特点:

  • 实时显示 每个 CPU 核心
  • 显示 用户态 / 内核态 / 空闲 / 等待 IO
  • 类似 top,但更偏 CPU 视角

安装:

sudo apt install cpustat

2️⃣ sysstat 的 mpstat(容易混淆)

mpstat -P ALL 1

这是最常用于“CPU 使用率分析”的工具。


二、cpustat 输出怎么看(Cloudflare 版)

典型输出示例:

CPU  User  Nice   Sys  Idle  IOWait  IRQ   SoftIRQ  Steal  Guest
 0    12.3   0.0   5.1  82.1    0.2   0.1    0.2     0.0    0.0
 1    45.6   0.0  10.2  43.1    0.5   0.0    0.4     0.0    0.0

核心字段含义

字段 含义 说明
User 用户态 CPU 应用程序消耗
Sys 内核态 CPU 系统调用、驱动
Idle 空闲 越高越好
IOWait 等待 IO 高 = 磁盘/网络瓶颈
IRQ / SoftIRQ 中断 网络、硬件中断
Steal 被虚拟化抢占 云服务器常见

三、常见性能分析方法

✅ 1. CPU 是否瓶颈?

  • Idle < 10% → CPU 已满载
  • User 很高 → 应用计算密集
  • Sys 很高 → 系统调用/锁/上下文切换多

✅ 2. IO 是否瓶颈?

  • IOWait > 10%
    • 磁盘慢
    • 数据库、日志写入
    • 用 iostat -x 1 配合分析

✅ 3. 单核热点(很关键)

cpustat

观察:

  • 某一核 User 长期 90%+
  • 其他核空闲
    ✅ 说明:
  • 程序未多线程
  • 或有锁竞争

✅ 4. 中断是否过多?

  • SoftIRQ 高
    • 网络流量大
    • 可用 cat /proc/softirqs

四、实战组合分析(强烈推荐)

CPU + 进程

cpustat
top -H

CPU + IO

cpustat
iostat -x 1

CPU + 系统调用

perf top

五、示例结论写法(你可以直接用)

通过 cpustat 观察,CPU0 用户态占用长期 85% 以上,Idle 低于 10%,且 IOWait 不明显,说明瓶颈来自应用程序计算,而非磁盘 IO,建议优化算法或增加线程并行度。


如果你愿意,可以:

  • 贴一段 cpustat 输出
  • 或说明你是 服务器 / 桌面 / 容器

我可以帮你逐行分析并给优化建议。

0 踩