当前位置: 首页 > news >正文

生产级 SOP:vmstat + mpstat + pidstat + perf 四层联动排障决策树 1 - 小镇

生产级 SOP:vmstat + mpstat + pidstat + perf 四层联动排障决策树 1

下面给你一套生产级 SOP:vmstat + mpstat + pidstat + perf 四层联动排障决策树。目标是做到:

看到 load 高,不猜,按流程 3~5 分钟定位方向(CPU / IO / 调度 / 锁 / 中断)


✔ 总体架构(四层模型)

Layer 1: vmstat   → 系统“有没有问题”(队列层)
Layer 2: mpstat   → CPU“忙在什么类型”(CPU类型层)
Layer 3: pidstat  → “是谁在制造问题”(进程层)
Layer 4: perf     → “代码/内核哪里出问题”(根因层)

✔ 第一层:vmstat(先判断“问题类型”)

✔ 命令

vmstat 1

✔ 核心判断矩阵(最重要)

指标阈值结论
r > CPU核数 CPU排队(CPU压力)
b > 2 IO阻塞(D状态)
cs > 50k/s 调度风暴
si/so > 0 内存压力(swap)

✔ 决策分流(第一步必须做)

            vmstat|-------------------------|           |           |r高        b高        cs高|           |           |CPU问题     IO问题     调度问题

✔ 第二层:mpstat(确认“CPU到底在忙什么”)

✔ 命令

mpstat -P ALL 1

✔ 核心指标判断

指标含义阈值
%usr 用户态CPU >80%热点
%sys 内核态CPU >30%异常
%iowait IO等待 >20%瓶颈
%irq 硬中断 >5%异常
%soft 软中断 >10%网络压力

✔ CPU问题分类

✔ CPU型 load

%usr 高 + r高

👉 结论:

  • 业务计算瓶颈

  • 用 perf 找函数热点


✔ IO型 load(CPU假忙)

%wa 高 + idle不低

👉 结论:

  • IO卡住

  • D状态堆积


✔ 调度型 load

%sys 高 + idle不低

👉 结论:

  • 锁 / cs / 线程风暴


✔ 中断风暴

%irq 或 %soft 高

👉 结论:

  • 网络/磁盘中断问题


✔ 第三层:pidstat(定位“是谁制造问题”)

✔ CPU/调度分析

pidstat -u -w 1

✔ 核心指标

指标含义阈值
%CPU CPU占用 >80%热点进程
cswch/s 主动切换 >10k
nvcswch/s 被动切换 >20k

✔ 定位规则

✔ CPU热点进程

%CPU 高

👉 谁在烧 CPU


✔ 锁竞争进程

nvcswch/s 高

👉 futex / mutex 竞争


✔ IO阻塞进程

状态 D

👉 IO卡住


✔ 调度风暴进程

cswch/s + nvcswch/s 都高

👉 线程抖动 / 线程过多


✔ 第四层:perf(最终根因定位)

👉 进入 perf 的前提:

已经知道是 CPU / IO / 调度问题


✔ 4.1 CPU问题(perf top / record)

perf top

或:

perf record -F 99 -ag -- sleep 30
perf report

✔ 判断重点

现象结论
单函数占比高 CPU热点
syscall高 内核开销
lock高 锁竞争

✔ 4.2 IO问题(block trace)

perf record -e block:block_rq_issue -a
perf record -e block:block_rq_complete -a

✔ 判断

现象结论
ext4/xfs 文件系统
submit_bio block层
nvme/driver 硬件问题

✔ 4.3 调度问题(核心)

perf sched record
perf sched latency

✔ 判断

现象结论
latency高 调度延迟
wakeup多 线程抖动
futex高 锁竞争

✔ 四层联动决策树(生产级核心)

                vmstat|--------------------------------|              |              |r高            b高            cs高|              |              |mpstat         mpstat         mpstat|              |              |CPU/锁/调度     IO确认       调度确认|              |              |pidstat         pidstat        pidstat|              |              |找进程         找D状态进程   找抖动进程|              |              |perf            perf           perf|              |              |函数热点      IO路径         调度/锁根因

✔ 一键 SOP(生产排障标准流程)

✔ Step 1(必做)

vmstat 1

✔ Step 2(分类)

条件下一步
r高 mpstat + perf CPU
b高 iostat + perf block
cs高 pidstat + perf sched

✔ Step 3(定位进程)

pidstat -u -w 1

✔ Step 4(根因)

问题perf工具
CPU perf top / record
IO block trace
调度 perf sched
perf lock

✔ 最终总结(一句话版 SOP)

vmstat 定问题类型 → mpstat 定CPU性质 → pidstat 定进程 → perf 定根因


如果你下一步想再升级,我可以帮你做一版更狠的:

👉 “线上 load 高 3 分钟自动归因流程(含判断阈值 + 故障分级 + runbook)”