cpustat
是一个用于显示 CPU 使用情况的工具,它是 sysstat
软件包的一部分。cpustat
可以显示每个 CPU 的详细使用情况,包括用户空间占用、系统空间占用、空闲时间等。以下是如何解读 cpustat
输出结果的一些基本指导:
Linux 5.4.0-42-generic (hostname) 01/01/2023 _x86_64_ (4 CPU)
avg-cpu: %user %system %idle %iowait %steal %guest %gnice
12.34 23.45 63.12 0.12 0.01 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz 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.01
sdb 0.00 0.00 0.50 0.50 4.00 12.00 16.00 0.00 0.00 0.00 0.01
%user
: 用户空间占用 CPU 的百分比。%system
: 系统空间(内核)占用 CPU 的百分比。%idle
: CPU 空闲时间的百分比。%iowait
: CPU 等待 I/O 操作完成的时间百分比。%steal
: 虚拟机管理程序从当前虚拟机中“偷取”的时间百分比(主要用于虚拟化环境)。%guest
: 运行虚拟机的时间百分比。%gnice
: 以 nice 值(优先级)运行进程的时间百分比。rrqm/s
: 每秒合并的读请求数。wrqm/s
: 每秒合并的写请求数。r/s
: 每秒完成的读操作数。w/s
: 每秒完成的写操作数。rkB/s
: 每秒读取的数据量(以千字节为单位)。wkB/s
: 每秒写入的数据量(以千字节为单位)。avgrq-sz
: 平均每次 I/O 请求的大小(以扇区为单位)。avgqu-sz
: 平均 I/O 队列长度。await
: 平均每次 I/O 操作的等待时间(以毫秒为单位)。svctm
: 平均每次 I/O 操作的服务时间(以毫秒为单位)。%util
: 设备利用率,即设备忙碌的时间百分比。cpustat
默认会显示所有 CPU 的汇总信息。如果需要查看特定 CPU 的详细信息,可以使用 -C
选项指定 CPU 编号。%steal
和 %guest
列可能更有意义。通过分析这些数据,你可以了解系统的 CPU 使用情况,识别潜在的性能瓶颈,并进行相应的优化。