温馨提示×

cpustat命令输出结果如何解读

小樊
41
2025-12-08 00:58:31
栏目: 编程语言

cpustat 是一个用于显示 CPU 统计信息的命令行工具,它通常作为 sysstat 软件包的一部分提供。cpustat 可以显示每个 CPU 的详细性能指标,包括用户态时间、系统态时间、空闲时间等。它的输出结果可以帮助系统管理员监控和分析系统的性能。

以下是 cpustat 命令输出结果的一般解读方法:

Linux 5.4.0-42-generic (hostname) 	03/21/2021 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           12.34    0.01    2.56    0.12    0.00   85.07

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    1.00     8.00     8.00     16.00     0.00    0.00    0.00    0.00   1.00   0.10
sdb               0.00     0.00    0.50    0.50     4.00     4.00     16.00     0.00    0.00    0.00    0.00   0.50   0.05

输出结果可以分为两个主要部分:

  1. CPU 使用率摘要(avg-cpu 行):

    • %user:用户态进程消耗的 CPU 时间百分比。
    • %nice:调整过优先级的用户态进程消耗的 CPU 时间百分比。
    • %system:内核态进程消耗的 CPU 时间百分比。
    • %iowait:CPU 等待 I/O 操作完成的时间百分比。
    • %steal:在虚拟化环境中,虚拟机等待物理 CPU 资源的时间百分比。
    • %idle:CPU 空闲时间百分比。
  2. 设备 I/O 统计信息(Device 行):

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

解读这些数据时,应该关注 CPU 的使用率,特别是 %user%system%idle 这几个指标。如果 %user%system 的值较高,可能意味着用户进程或内核进程消耗了较多的 CPU 资源。如果 %idle 的值较低,可能意味着 CPU 资源紧张。

对于设备 I/O 统计信息,%util 接近或等于 100% 可能表示设备饱和,存在 I/O 瓶颈。

需要注意的是,cpustat 的输出可能会因系统配置和版本的不同而有所差异。因此,在解读输出结果时,应参考具体系统的文档和上下文信息。

0