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
输出结果可以分为两个主要部分:
CPU 使用率摘要(avg-cpu 行):
%user:用户态进程消耗的 CPU 时间百分比。%nice:调整过优先级的用户态进程消耗的 CPU 时间百分比。%system:内核态进程消耗的 CPU 时间百分比。%iowait:CPU 等待 I/O 操作完成的时间百分比。%steal:在虚拟化环境中,虚拟机等待物理 CPU 资源的时间百分比。%idle:CPU 空闲时间百分比。设备 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 的输出可能会因系统配置和版本的不同而有所差异。因此,在解读输出结果时,应参考具体系统的文档和上下文信息。