温馨提示×

ubuntu cpustat怎么分析

小樊
45
2026-10-06 20:04:52
栏目: 智能运维

在 Ubuntu 上,cpustat 通常指 sysstat 工具包中的 mpstat / pidstat,也可能是指 cpustat(来自 perf 工具或第三方工具)。最常见、最容易混淆的是:

  • mpstat(sysstat 提供)
  • pidstat(sysstat 提供)
  • cpustat(如 linux-tools 中的 cpustat 或 Go 写的 cpustat)

下面我按最常见情况给你讲怎么分析。


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

which cpustat
cpustat --help

常见情况:

1️⃣ sysstat 的 mpstat

mpstat 1

2️⃣ pidstat

pidstat -u 1

3️⃣ Linux 工具集里的 cpustat

cpustat 1

二、以 mpstat 为例(最常用)

基本用法

mpstat 1

输出示例:

Linux 6.5.0  (ubuntu)   2026-01-21  _x86_64_

13:00:01  CPU  %usr  %nice  %sys  %iowait  %irq  %soft  %steal  %guest  %gnice  %idle
13:00:02  all   12.3   0.0   5.6     0.2     0.0   0.1     0.0     0.0     0.0   81.8

各字段含义(重点)

字段 含义 分析重点
%usr 用户态 CPU 应用计算多不多
%sys 内核态 CPU 系统调用、驱动
%iowait IO 等待 磁盘/网络瓶颈信号
%soft 软中断 网络收包多
%steal 被虚拟机抢占 云主机常见
%idle 空闲 越低越忙

三、常见性能问题分析思路

✅ 1. CPU 很忙但程序慢

看:

  • %usr 高 → 应用本身吃 CPU
  • %sys 高 → 系统调用多(锁、文件系统)

✅ 2. 服务器卡顿但 CPU 不高

看:

  • %iowait 高 → 磁盘慢
  • %steal 高 → 云主机被抢资源

✅ 3. 网络服务器 CPU 高

看:

  • %soft 高 → 中断处理多
  • 可用 mpstat -P ALL

四、按 CPU 核心分析

mpstat -P ALL 1

可以看:

  • 是否有单核打满
  • 是否负载不均

五、结合进程级分析(非常重要)

找出哪个进程吃 CPU

pidstat -u 1

或

top -H

六、如果你用的是 cpustat(Go 版)

示例:

cpustat 1

特点:

  • 按 进程 / 线程 显示 CPU 使用
  • 适合排查“某个服务突然吃 CPU”

重点看:

  • CPU%
  • Command

七、实战分析模板(推荐)

# 看整体
mpstat 1

# 看每个核
mpstat -P ALL 1

# 看进程
pidstat -u 1

# 看线程
pidstat -t 1

八、你可以直接告诉我

如果你愿意,可以把 你的 cpustat / mpstat 输出贴出来,我可以:

  • 直接帮你判断瓶颈
  • 告诉你是不是 CPU / IO / 网络问题
  • 给你具体优化建议

你现在是遇到 CPU 高、卡顿、还是不知道怎么看输出?

0 踩