温馨提示×

cpustat命令输出如何解读

小樊
42
2025-10-26 04:40:32
栏目: 编程语言

cpustat 是一个用于显示 CPU 统计信息的工具,通常在 Linux 系统中使用。它可以提供关于 CPU 使用率、上下文切换、中断等方面的详细信息。以下是如何解读 cpustat 命令的输出:

输出示例

Linux 5.4.0-42-generic (hostname) 	03/17/2023 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           12.34    0.01    1.23    0.05    0.00   86.37

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda              0.00     0.00    1.00    0.50     8.00    16.00    16.00     0.00    0.00    0.00    0.00   0.10   0.40
sdb              0.00     0.00    0.50    0.00     4.00     0.00     16.00     0.00    0.00    0.00    0.00   0.00   0.00

解读各部分内容

avg-cpu 行

  • %user: 用户空间进程占用的 CPU 时间百分比。
  • %nice: 优先级调整过的用户空间进程占用的 CPU 时间百分比。
  • %system: 内核空间进程占用的 CPU 时间百分比。
  • %iowait: CPU 等待 I/O 操作完成的时间百分比。
  • %steal: 虚拟机管理程序从虚拟机中“偷取”的 CPU 时间百分比(主要用于虚拟化环境)。
  • %idle: CPU 空闲时间百分比。

Device 行

  • rrqm/s: 每秒合并的读请求数。
  • wrqm/s: 每秒合并的写请求数。
  • r/s: 每秒完成的读请求数。
  • w/s: 每秒完成的写请求数。
  • rkB/s: 每秒读取的数据量(以 KB 为单位)。
  • wkB/s: 每秒写入的数据量(以 KB 为单位)。
  • avgrq-sz: 平均每次 I/O 请求的大小(以扇区为单位)。
  • avgqu-sz: 平均 I/O 队列长度。
  • await: 平均每次 I/O 操作的等待时间(以毫秒为单位)。
  • r_await: 平均每次读操作的等待时间(以毫秒为单位)。
  • w_await: 平均每次写操作的等待时间(以毫秒为单位)。
  • svctm: 平均每次 I/O 操作的服务时间(以毫秒为单位)。
  • %util: 设备利用率,即设备忙的时间百分比。

注意事项

  • %idle 值越低,表示 CPU 越忙碌。
  • %iowait 值较高可能表示磁盘 I/O 瓶颈。
  • avgqu-szawait 值可以帮助识别 I/O 性能问题。
  • %util 接近或等于 100% 表示设备可能处于饱和状态。

通过分析这些指标,可以有效地监控和诊断系统性能问题。

0