温馨提示×

ubuntu cpustat怎样分析性能

小樊
53
2026-10-03 21:39:06
栏目: 智能运维

在 Ubuntu 上,cpustat 通常不是系统默认自带命令,它一般来自 sysstat 工具包(如 mpstat 的姊妹工具)或 pcp(Performance Co-Pilot) 中的 cpustat。不过更常见、易用的是 sysstat 中的 mpstat 以及 perf / top / sar 等工具。下面我分别说明:


一、先确认你用的是哪种 cpustat

1. sysstat 提供的 CPU 统计(推荐方式)

Ubuntu 上通常这样安装:

sudo apt install sysstat

相关命令:

  • mpstat:实时 CPU 使用率
  • sar:历史 CPU 性能分析
  • iostat:CPU + 磁盘

示例:

mpstat 1 5

每 1 秒采样一次,共 5 次。

输出示例:

Linux 6.5.0 (ubuntu)  03/20/2026  _x86_64_

10:00:01 AM  CPU  %usr  %nice  %sys  %iowait  %irq  %soft  %steal  %guest  %idle
10:00:02 AM  all   12.3   0.0   5.6     2.1    0.0   0.4     0.0     0.0   79.6

字段含义(性能分析关键)

  • %usr:用户态 CPU(应用消耗)
  • %sys:内核态 CPU
  • %iowait:CPU 等 I/O(磁盘/网络慢)
  • %soft:软中断(网络、网卡)
  • %steal:被虚拟机抢占(云服务器常见)
  • %idle:空闲

二、如何用 cpustat/mpstat 分析性能问题

场景 1:CPU 使用率很高

  • %usr 高 → 应用代码问题(死循环、算法差)
  • %sys 高 → 内核/系统调用多(锁、文件、网络)
  • %soft 高 → 网络中断过多

场景 2:系统卡但 CPU 不高

  • %iowait 高 → 磁盘瓶颈
  • %steal 高 → 云主机被抢资源

场景 3:CPU 明明空闲但慢

  • 看是否单核跑满:
mpstat -P ALL 1
  • 查看某个核心是否 100%

三、结合其他工具深入分析

1. 看是哪个进程吃 CPU

top
# 或
htop

2. 看历史 CPU 使用(非常重要)

sar -u 1 3

或查看历史:

sar -u

3. 深入函数级性能(高级)

sudo perf top

或:

sudo perf record -a 10
sudo perf report

四、如果你真的用的是 pcp 的 cpustat

sudo apt install pcp
cpustat

它输出的是:

  • 用户 / 系统 / 等待 / 空闲
  • 每秒中断、上下文切换

适合做长时间性能趋势监控。


五、快速排查思路总结

  1. mpstat 1 看整体 CPU
  2. %iowait 高 → 查磁盘 iostat
  3. %sys 高 → perf 查系统调用
  4. 单核 100% → top -H 查线程
  5. 云服务器慢 → 看 %steal

如果你能贴一下 cpustat 或 mpstat 的实际输出,我可以直接帮你判断是哪种性能瓶颈。

0 踩