r值是判断CPU调度压力的核心指标:持续大于逻辑核数表明运行队列积压,短时尖峰属正常,但连续多秒≥核心数×2需警惕;需结合b、us、wa、cs等字段综合分析瓶颈类型。

直接看 r 列,它代表当前时刻处于“可运行”状态的进程数——即正在使用 CPU 或已就绪、只等调度器分配时间片的进程数量。这是判断进程队列是否积压最核心的指标。
怎么看 r 值是否异常
运行 vmstat 1 实时观察,重点关注后续每行(非首行)的 r 值:
- r 持续大于 CPU 逻辑核数(可用
nproc或lscpu | grep "CPU(s)"查),说明运行队列长期堆积,CPU 调度不过来 - r 短时尖峰(如偶尔跳到 5~8)但迅速回落,属正常波动;若连续多秒 ≥ 核心数 × 2,需警惕
- r 长期为 0 且 id(CPU 空闲)很高,说明系统轻载;但若同时 b(阻塞进程)高,说明瓶颈不在 CPU,而在 I/O 或锁等待
r 和 b 的关系要一起读
r 是“想跑但没轮上”,b 是“卡住根本没法跑”。两者组合能快速定位瓶颈类型:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- r 高 + b 低 → CPU 密集型负载(如计算任务、编译、加密)
- r 低 + b 高 → I/O 密集型或资源争用(如磁盘慢、数据库锁、网络延迟)
- r 高 + b 高 → 可能是内存严重不足(触发大量 swap 换入换出,既占 CPU 又拖 I/O)
配合其他字段交叉验证
单看 r 不够,需结合上下文确认是否真有压力:
- 查 us + sy:若总和长期 > 80%,且 r 高,基本坐实 CPU 过载
- 查 wa:若 wa 也高(>10%),说明 r 高可能由 I/O 等待间接导致(比如进程频繁唤醒又立刻阻塞)
- 查 cs(上下文切换):r 高时 cs 也显著升高,说明调度器忙于切换,进一步加重开销
实际命令建议
不用复杂参数,三步就够:
-
vmstat 1—— 实时滚动,盯住 r、b、us、wa 四列变化趋势 -
vmstat 2 10—— 每 2 秒采一次,共 10 行,适合抓一段稳定负载做快照分析 -
vmstat -w -t 1—— 宽输出 + 时间戳,方便记录和比对不同时间点的 r 值

















