cpustat 是一个用于监控 CPU 使用情况的工具,它是 sysstat 包的一部分。要使用 cpustat 排查 CPU 问题,请按照以下步骤操作:
首先,确保已经安装了 sysstat 包。如果没有,请使用以下命令安装:
sudo yum install sysstat
使用 cpustat 命令查看 CPU 使用情况。默认情况下,它会显示系统的整体 CPU 使用情况。运行以下命令:
cpustat
输出示例:
average: %usr %sys %iowait %steal %idle
12.34 5.67 1.23 0.00 80.76
这里,%usr 是用户空间进程使用的 CPU 百分比,%sys 是内核空间进程使用的 CPU 百分比,%iowait 是等待 I/O 操作完成的 CPU 百分比,%steal 是虚拟机管理程序从当前虚拟机窃取的 CPU 时间百分比,%idle 是空闲 CPU 百分比。
要查看每个 CPU 核心的使用情况,请使用 -c 选项:
cpustat -c
输出示例:
average: %user %system %idle %iowait %irq %soft %steal %guest %gnice %idle_
12.34 5.67 80.76 1.23 0.00 0.00 0.00 0.00 0.00 80.76
CPU %user %system %idle %iowait %irq %soft %steal %guest %gnice %idle_
0 10.00 4.00 85.00 1.00 0.00 0.00 0.00 0.00 0.00 85.00
1 15.00 6.00 78.00 1.00 0.00 0.00 0.00 0.00 0.00 78.00
...
若要查看特定时间间隔的 CPU 使用情况,请使用 -i 选项指定间隔(以秒为单位)和持续时间(以秒为单位)。例如,要每 5 秒收集一次数据,持续 60 秒,请运行:
cpustat -i 5 60
根据 cpustat 的输出,可以确定是否存在 CPU 性能问题。如果 %idle 列的值很低,说明 CPU 可能已经饱和。这可能是由于某个进程占用大量 CPU 资源,或者存在多个高 CPU 使用率的进程。
要找出导致 CPU 使用率高的进程,请结合使用 ps 和 grep 命令。例如,要查找占用 CPU 最多的前 5 个进程,请运行:
ps -eo %cpu,%mem,pid,cmd --sort=-%cpu | head -n 6
这将显示一个按 CPU 使用率降序排列的进程列表。
通过以上步骤,您可以使用 cpustat 工具排查 CPU 问题,并找出导致性能瓶颈的进程。然后,您可以采取相应的措施优化这些进程,例如优化代码、调整资源分配或升级硬件。