温馨提示×

怎么读cpustat结果

小樊
41
2026-10-15 07:39:51
栏目: 编程语言

cpustat 通常是 Linux 下查看 CPU 使用情况的工具(如 sysstat 包里的 mpstat/sar,或某些发行版自带的 cpustat)。下面我按常见 cpustat 输出给你讲怎么读。


一、典型 cpustat 输出示例

06:30:01  CPU   %usr  %nice   %sys  %iowait  %irq  %soft  %steal  %guest  %gnice  %idle
06:30:01  all   12.3    0.0    5.1     1.2    0.0    0.3     0.0     0.0      0.0   81.1
06:30:01    0   20.1    0.0    8.4     2.0    0.0    0.5     0.0     0.0      0.0   68.0
06:30:01    1   10.2    0.0    4.0     0.5    0.0    0.2     0.0     0.0      0.0   85.1

二、各字段含义(重点)

1️⃣ 时间

06:30:01

采样时间点(如果是间隔采样,就是每一行一个时间点)


2️⃣ CPU

CPU
all  → 所有 CPU 平均
0,1  → 具体某个 CPU 核心

3️⃣ 使用率字段(百分比)

字段 含义
%usr 用户态 CPU 时间(应用程序)
%nice 低优先级用户进程
%sys 内核态 CPU 时间
%iowait CPU 等待 IO 的时间
%irq 硬中断
%soft 软中断
%steal 被虚拟机偷走的 CPU(云服务器重要)
%guest 运行虚拟机占用的 CPU
%gnice 虚拟机低优先级
%idle 空闲 CPU

✅ 核心公式:

%usr + %sys + %iowait + %idle ≈ 100%

三、怎么判断系统状态

✅ 正常

  • %idle 高(>70%)
  • %iowait 低(<5%)

⚠️ CPU 瓶颈

  • %usr 或 %sys 很高
  • %idle 很低

⚠️ IO 瓶颈

  • %iowait 明显升高(>10%)

⚠️ 云服务器异常

  • %steal 高 → 宿主机抢资源

四、常见用法

# 每 2 秒采样一次,共 5 次
cpustat 2 5

# 只看某个 CPU
mpstat -P 0 1

# 查看历史(sysstat)
sar -u 1 3

五、建议你这样看

  1. 先看 all
  2. 再看是否有单个 CPU 特别高
  3. 区分是 %usr(应用)还是 %sys(内核)
  4. 配合 iowait 判断是不是磁盘问题

如果你贴一段你自己的 cpustat 输出,我可以直接帮你“翻译”成结论(比如:CPU 忙不忙、是不是 IO 问题)。

0 踩