top
实时显示进程及整体CPU占用;htop
交互式增强版更直观;mpstat
提供多核详细统计;vmstat
可查看系统资源综合状态,终端输入对应命令即可获取实时数据。在Linux系统中,监控CPU使用率是优化性能、排查故障的关键操作,以下是多种专业可靠的方法,适用于不同场景:
实时监控工具
top
命令
最常用的实时监控工具,按CPU使用率排序进程:
top
- 关键指标:
%Cpu(s)
:总体CPU使用率(us
=用户态,sy
=内核态,id
=空闲)。- 按
P
键:按CPU占用排序进程。 - 按
1
键:展开多核CPU的每个核心状态。 - 退出:按
q
。
htop
命令
增强版 top
,支持颜色和鼠标操作(需安装):
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL htop
- 优势:直观展示多核CPU、树状进程视图,支持进程筛选。
一次性快照命令
mpstat
查看每个CPU核心的详细统计(由 sysstat
包提供):
sudo apt install sysstat # 安装 mpstat -P ALL 1 # 每1秒刷新所有核心数据
输出示例:
%usr %nice %sys %iowait %irq %soft %steal %idle
20.1 0.0 5.3 0.2 0.0 0.1 0.0 74.3
vmstat
查看系统整体资源状态:
vmstat 1 5 # 每秒1次,共5次
- 关键列:
r
:等待运行的进程数(若持续>CPU核心数,表示过载)。us
,sy
,id
:用户态、内核态、空闲CPU百分比。
历史数据分析
sar
工具
记录并回溯历史CPU数据(需安装 sysstat
):
sar -u 1 3 # 每1秒采样,共3次(实时) sar -u # 查看当天历史记录
- 数据存储路径:
/var/log/sysstat/saXX
(XX为日期)。 - 生成报告:
sar -u -f /var/log/sysstat/sa15
(查看15号数据)。
图形化工具
GNOME 系统监视器
桌面环境适用:
- 启动方式:应用菜单搜索 “System Monitor” → “Resources” 标签页。
- 功能:实时图表展示CPU、内存、网络使用率。
nmon
高级终端监控工具:
sudo apt install nmon # Debian/Ubuntu nmon
- 按
c
:显示CPU使用率;按m
:显示内存;按q
退出。
文件解析法
通过 /proc/stat
文件计算CPU使用率:
cat /proc/stat | grep '^cpu '
输出示例:
cpu 1000 200 300 4000 0 50 0 0
- 计算逻辑:
- 总时间 = 所有字段之和(单位:jiffies,即时钟滴答)。
- 使用率 = 100% × (总时间 – 空闲时间) / 总时间。
适合脚本开发,但需两次采样间隔计算差值(推荐用工具避免手动计算)。
高级场景推荐
- 快速检查:
top -n 1 -b | head -5
(非交互式输出)。 - 容器环境:
docker stats
或kubectl top pods
。 - 长期监控:配置
sysstat
定时任务(默认每10分钟记录一次)。 - 可视化:集成 Prometheus + Grafana 实现企业级监控。
总结建议
- 日常运维:首选
top
或htop
。 - 脚本开发:解析
/proc/stat
或使用mpstat
。 - 历史分析:依赖
sar
日志。 - 桌面用户:使用GNOME系统监视器。
引用说明基于Linux内核文档(kernel.org)、sysstat官方手册(github.com/sysstat/sysstat)及Ubuntu/CentOS官方指南,命令测试环境为Linux Kernel 5.4+。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/23049.html