top 或 htop:实时监控CPU及进程动态(htop需安装),- mpstat:显示每个CPU核心详细统计,- vmstat:报告整体CPU使用情况,- sar:查看历史与实时数据,- 直接读取 /proc/stat 文件获取原始信息在Linux系统中,监控CPU使用率是优化性能、排查故障的关键操作,以下是多种专业方法,结合命令详解与场景建议:

核心命令工具
top 命令(实时动态视图)
top
- 操作说明:
- 默认按CPU使用率降序排序,按
P键锁定CPU排序。 - 关键指标:
%Cpu(s):总体CPU使用率。us:用户空间程序占用sy:内核空间占用id:空闲比例wa:I/O等待耗时
- 退出按
q。
- 默认按CPU使用率降序排序,按
- 适用场景:实时监控进程级资源占用。
htop 命令(增强版交互式监控)
htop # 若未安装,执行 sudo apt install htop(Debian/Ubuntu)或 sudo yum install htop(RHEL/CentOS)
- 优势:
- 彩色界面,支持鼠标操作。
- 直观展示多核CPU使用(每核单独显示)。
- 可按列排序、进程树视图(按
F5)。
- 适用场景:替代
top,需更友好交互时。
vmstat 命令(系统整体状态统计)
vmstat 1 5 # 每秒采样1次,共5次
- 输出解读:
r:等待运行的进程数(判断CPU负载)。us,sy,id,wa:同top的CPU分类占比。
- 适用场景:快速检查CPU、内存、I/O综合瓶颈。
mpstat 命令(多核CPU详细报告)
mpstat -P ALL 1 # 监控所有核心,每秒刷新
- 输出示例:
08:30:01 CPU %usr %nice %sys %iowait %irq %soft %steal %idle 08:30:02 all 15.2 0.0 2.1 0.3 0.0 0.1 0.0 82.3 08:30:02 0 18.1 0.0 3.0 0.2 ... # 核心0单独数据 - 关键参数:
-P ALL:显示每个核心的独立数据。%idle> 20% 通常表示CPU资源充足。
- 适用场景:分析多核CPU负载均衡问题。
sar 命令(历史与实时监控)
sar -u 1 3 # 查看实时CPU(每秒1次,共3次) sar -u # 查看当天历史记录
- 安装:
sudo apt install sysstat # Debian/Ubuntu sudo yum install sysstat # RHEL/CentOS
- 数据存储:历史日志位于
/var/log/sa/saXX(XX为日期)。 - 适用场景:长期趋势分析,故障回溯。
/proc/stat 文件(原始数据源)
cat /proc/stat
- 输出解析:
cpu 1000 200 500 3000 50 0 20 0 0 0 cpu0 500 100 200 1500 ... # 核心0数据- 数值单位:jiffies(系统时钟滴答次数)。
- 计算CPU使用率公式:
total = user + nice + system + idle + iowait + irq + softirq usage = (total - idle) / total * 100%
- 适用场景:开发自定义监控脚本。
关键注意事项
- 多核CPU统计:
top/htop默认显示总和,需观察单核是否过载(如htop分核显示)。- 使用
mpstat -P ALL或lscpu查看核心数。
- 瞬时值 vs 平均值:
top/htop反映实时状态。sar适合计算时间段内平均值(如sar -u 10 6统计10分钟平均)。
- I/O等待 (
%wa):- 若
%wa持续 > 5%,表明磁盘I/O成为瓶颈(即使CPU空闲)。
- 若
- 容器环境:
- 在Docker/Kubernetes中,推荐
cadvisor或kubectl top pods获取容器级CPU数据。
- 在Docker/Kubernetes中,推荐
方法对比与选择建议
| 命令 | 实时性 | 多核支持 | 历史数据 | 易读性 |
|---|---|---|---|---|
top |
||||
htop |
||||
vmstat |
||||
mpstat |
||||
sar |
||||
/proc/stat |
☆(需计算) |
- 推荐场景:
- 快速诊断:
htop(直观)或vmstat(综合指标)。 - 深度分析:
mpstat(多核详情) +sar(历史对比)。 - 自动化监控:脚本读取
/proc/stat或集成Prometheus+Grafana。
- 快速诊断:
参考来源:
- Linux man pages (
man top,man vmstat,man mpstat)- Sysstat工具文档 (https://github.com/sysstat/sysstat)
- 《Linux性能优化实战》(倪朋飞,极客时间)
数据安全提示:生产环境中避免频繁高精度采样(如
vmstat 0.1),可能加剧负载。
定期监控CPU使用率,是保障系统稳定性的基石——预防胜于修复。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/11997.html