linux 查看 CPU 使用率的几种方法(附命令)
答案:实时整体用 top/htop,每核用 mpstat -P ALL 1,按进程用 pidstat 1,总览用 vmstat 1,历史用 sar -u 1;查 CPU 信息用 lscpu、nproc、cat /proc/cpuinfo。
一、使用率:按视角选命令
| 想看什么 | 命令 | 说明 |
|---|---|---|
| 实时整体 + 进程 | top / htop | 默认 3 秒刷新,top 按 P 按 CPU 排序 |
| 每个核分别 | mpstat -P ALL 1 | 每个 CPU 核一行,每秒刷新 |
| 按进程实时 | pidstat 1 | 进程/线程 CPU 实时统计 |
| 快捷总览 | vmstat 1 | us/sy/id/wa 四列看忙碌构成 |
| 记录历史 | sar -u 1 | 存日志,回头看峰值 |
| 单进程 | pidstat -p <PID> 1 | 只看目标进程 |
二、CPU 使用率最高的进程
bash
# top 交互式,进入后按 P(大写)= 按 CPU 降序
top
# 一次性快照(ps 的 %CPU 是进程生命周期均值,仅参考)
ps aux --sort=-%cpu | head -n 10三、CPU 信息:硬件视角
bash
lscpu # 型号/核数/频率/缓存/架构 汇总
nproc # 逻辑核数(含超线程)
cat /proc/cpuinfo # 每核详情(model name、cache size…)
getconf _NPROCESSORS_ONLN # 在线逻辑核数注意:lscpu 看"这台机器几个核、什么型号",top 看"现在负载多大",两个视角别混。
四、常见坑
ps aux的 %CPU 不准:它是进程从启动到现在的平均,不是瞬时值;- 多核超 100% 正常:
top的 %CPU 未按核数归一化,2 核满负荷显示 200%; vmstat的 us+sy+wa+id 约等于 100:四列构成忙碌/空闲占比;- 核数别猜:容器里
nproc可能是 cgroup 限制值,宿主用lscpu看物理核。
深度入口
- top 各字段含义详解:top 命令详解
- 每核/进程统计原理:mpstat 与 pidstat、pidstat
- vmstat 字段全解:vmstat
- CPU 使用率计算原理:CPU 使用率怎么算
FAQ
Q: linux 查看 CPU 使用率的几种方法? A: top/htop 看实时整体与进程;mpstat -P ALL 1 看每核;pidstat 1 看进程;vmstat 1 看总览;sar -u 1 记录历史。
Q: linux 怎么查看 CPU 信息? A: lscpu 汇总(型号/核数/频率/缓存);cat /proc/cpuinfo 看每核详情;nproc 看逻辑核数。
Q: linux 怎么查看每个 CPU 核的使用率? A: mpstat -P ALL 1 按核展示;top 按 1 键展开各核;htop 默认显示多核。
Q: 怎么查看进程的 CPU 使用率? A: top/htop 看 %CPU 列;pidstat 1 按进程实时;ps aux 的 %CPU 是生命周期均值,仅参考。
Q: linux 查看 CPU 使用率最高的进程? A: top 按 P 排序;htop 默认按 CPU 排序;ps aux --sort=-%cpu | head 快照。
一句话总结:看 CPU 使用率按视角选命令——整体 top、每核 mpstat -P ALL 1、进程 pidstat 1、历史 sar;看 CPU 信息用 lscpu//proc/cpuinfo,别用 ps 的均值当瞬时值。