cpustat 是一个用于监控系统 CPU 使用情况的工具,它是 sysstat 软件包的一部分。要使用 cpustat 分析结果,首先需要确保已经安装了 sysstat。在 Debian 系统上,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install sysstat
安装完成后,可以通过运行 cpustat 命令来查看 CPU 使用情况。默认情况下,cpustat 会显示系统的总体 CPU 使用情况。你还可以通过添加不同的选项来查看更详细的信息,例如:
-c:显示每个 CPU 的详细使用情况。-m:显示内存和交换空间的使用情况。-P:显示每个进程的 CPU 使用情况。以下是一个简单的 cpustat 输出示例:
Linux 5.4.0-42-generic (hostname) 03/31/2021 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.34 0.01 1.23 0.02 0.00 86.40
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 1.00 9.60 19.20 19.20 0.00 0.00 0.00 0.10
这里有一些关键指标的解释:
%user:用户空间程序使用的 CPU 时间百分比。%nice:用户空间程序以低优先级(nice值)使用的 CPU 时间百分比。%system:内核空间程序使用的 CPU 时间百分比。%iowait:CPU 等待 I/O 操作完成的时间百分比。%steal:虚拟机管理程序从当前虚拟机中窃取的 CPU 时间百分比(仅在虚拟化环境中有效)。%idle:CPU 空闲时间百分比。设备部分的指标解释:
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 请求的等待时间(以毫秒为单位)。svctm:平均每次 I/O 请求的服务时间(以毫秒为单位)。%util:设备的利用率百分比。通过分析这些指标,可以了解系统的性能瓶颈,例如 CPU 使用率过高、磁盘 I/O 等待时间过长等。这有助于诊断问题并采取相应的优化措施。