在 CentOS 系统中,cpustat 本身是一个性能观测工具(通常来自 sysstat 包),不能“优化”它,但可以通过正确使用 + 系统调优来让 CPU 更优,并用 cpustat 验证效果。你的问题通常可以理解为:
如何用 cpustat 分析并优化 CentOS 的 CPU 性能?
下面按「看 → 分析 → 优化」的思路说明。
cpustat 用于查看 CPU 利用率、上下文切换、中断、运行队列 等。
常见来源:
sysstat 包(mpstat、sar 类似)pcp / collectl 中的 cpustatyum install -y sysstat
mpstat -P ALL 1
关注:
%user:用户态%system:内核态%iowait:IO 等待(高 = 磁盘瓶颈)%idle:空闲✅ 正常:idle > 20%
❌ 异常:
%system 很高 → 内核/中断问题%iowait 很高 → IO 问题%user 很高 → 应用问题原因
优化
top
找到高 CPU 进程 → 优化代码 / 限流
✅ 建议:
原因
查看中断
cat /proc/interrupts
优化
# 查看软中断
mpstat -I SUM 1
✅ 方法:
irqbalance
或手动绑定:
echo 2 > /proc/irq/XX/smp_affinity
原因
优化
iostat -x 1
✅ 方法:
swapoff -a
echo deadline > /sys/block/sda/queue/scheduler
原因
查看
vmstat 1
✅ 优化:
systemctl disable bluetooth
systemctl disable cups
vi /etc/sysctl.conf
vm.swappiness = 1
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
生效:
sysctl -p
cpupower frequency-info
cpupower frequency-set -g performance
优化前后对比:
mpstat -P ALL 1 10
✅ 优化成功表现:
%idle 上升%iowait 降低cs(上下文切换)减少| 误区 | 说明 |
|---|---|
| cpustat 能优化 | ❌ 只能看 |
| idle 低就是有问题 | ❌ 高负载不一定异常 |
| CPU 100% 就挂了 | ❌ 看是 user 还是 iowait |
你可以直接贴出:
mpstat -P ALL 1 5
top
vmstat 1 5
我可以 帮你精准判断是 CPU / IO / 中断 / 应用问题,并给出具体优化命令。