Linux监控CPU使用
内容
在 Linux 中查看 CPU 占用率的常用命令非常多,以下是一个分类整理的高效工具清单,涵盖实时监控、历史分析和高级统计场景:
一、实时 CPU 监控工具
1. top
(基础版)
top
- 功能:动态显示进程和 CPU 占用(用户态、内核态、空闲占比)
- 操作:
- 按
1
:展开每个 CPU 核心的详情 - 按
P
:按 CPU 使用率排序
- 按
2. htop
(增强版)
sudo apt install htop # Debian/Ubuntu
htop
- 优势:彩色界面、鼠标交互、树状视图
- 操作:
- 鼠标点击列标题排序
F4
过滤进程名
3. glances
(全资源监控)
sudo pip3 install glances
glances
- 功能:同时显示 CPU、内存、磁盘、网络等指标
- 输出示例:
CPU [|||||||||||||||||||||||||||||||||||||||||||||||| 95.2%] Load 3.2
二、多核 CPU 分析工具
1. mpstat
(每核详细统计)
sudo apt install sysstat # 安装
mpstat -P ALL 1 # 每秒刷新所有核心数据
- 输出关键字段:
%usr
:用户态 CPU 时间%sys
:内核态 CPU 时间%idle
:空闲率
2. turbostat
(Intel/AMD CPU 功耗监控)
sudo apt install linux-tools-common
turbostat --show Core,CPU,Avg_MHz,Busy%,PkgTmp
- 用途:监控 CPU 频率、温度和功耗(需 root)
三、历史数据分析工具
1. sar
(历史趋势)
sar -u 1 3 # 查看 CPU 历史数据(1秒间隔,采样3次)
sar -f /var/log/sa/saXX # 查看某日存档(XX为日期)
- 关键字段:
%user
:用户进程占用%iowait
:等待 I/O 的时间
2. atop
(长期记录)
sudo apt install atop
atop -l # 查看历史记录(按 `t` 切换时间点)
四、进程级 CPU 分析
1. pidstat
(进程/线程级)
pidstat -u 1 # 每秒报告进程 CPU 使用率
pidstat -tu -p <PID> 1 # 监控指定进程的线程
2. ps
(快照模式)
ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -n 10
- 作用:快速找出当前 CPU 占用最高的前 10 进程
五、轻量级工具
1. vmstat
(快速概览)
vmstat 1 # 每秒输出(关注 `us`, `sy`, `id` 列)
2. dstat
(多功能)
sudo apt install dstat
dstat -c # 实时显示 CPU 使用率 + 中断上下文
六、可视化工具
1. nmon
sudo apt install nmon
nmon → 按 c # 进入 CPU 监控模式
- 输出:动态显示每个核心的使用率柱状图
2. netdata
(Web 仪表盘)
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
- 访问:
http://localhost:19999
七、底层工具
1. /proc/stat
cat /proc/stat | grep '^cpu'
- 手动计算公式:
total = user + nice + system + idle + iowait + irq + softirq used = total - idle - iowait usage = 100 * used / total
2. perf
(高级性能分析)
sudo perf stat -a -- sleep 1 # 监控全局 CPU 周期
选型建议
场景 | 推荐工具 |
---|---|
快速查看实时 CPU | top /htop |
多核详细统计 | mpstat |
历史数据分析 | sar |
进程级分析 | pidstat |
开发环境轻量监控 | vmstat /dstat |
生产环境长期监控 | netdata /Prometheus |
注意事项
- 部分工具需 root 权限(如
turbostat
) - 历史数据工具(如
sar
)依赖sysstat
服务的后台运行 - 避免在容器环境中使用依赖
/proc
文件的工具(可能需要特权模式)