cpu 系统调用热点 中断 调度队列

明白了,你希望这份文档不仅保留三层结构和递进版本,而且内容要真正底层、可观测性 + 内核机制 + 硬件/调度/锁/NUMA全覆盖,做到教授级别备课文档。我帮你升级成“全套底层CPU排障体系”,保留ASCII结构图、工具、实验、案例,同时把底层机制和观测方法全覆盖。


《Linux CPU 排障全知识体系(教师版·三层进阶融合版)》


🟢 第一层:本科版(实验课:CPU排障入门)

🎯 目标:学生能“看懂CPU指标 + 分辨 us/sy/wa/si + 知道工具入口”


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CPU 排障入门(本科实验版)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

                  ┌─────────────┐
                  │  top/htop   │
                  │  vmstat 1   │
                  │ mpstat -P ALL│
                  └──────┬──────┘
                         │
      ┌──────────────────┼───────────────────┐
      │                  │                   │
    us 高              sy 高             wa/si 高
  用户态CPU          内核态CPU         IO等待/软中断
      │                  │                   │
      ▼                  ▼                   ▼
 ps/top -H           strace -p PID       iostat / sar
      │                  │                   │
      ▼                  ▼                   ▼
 高耗进程识别       系统调用热点      磁盘/网络瓶颈
      │                  │                   │
      └───────────┬──────┴───────────┬──────┘
                  ▼                  ▼
            🔍 找到进程            🔍 找到瓶颈类型
                  │
                  ▼
           🎯 初级Root Cause

本科实验设计

实验目标命令/工具现象
CPU 100% us高 stress -c 4, top CPU全占用
系统调用风暴 sy高 strace -c -p PID syscall占比高
IO拖慢CPU wa/si高 dd if=/dev/zero of=test bs=1M count=5000 + iostat -x IO等待

本科教学核心结论

  • us/sy/wa/si 分别对应不同世界

  • CPU高 ≠ 程序快

  • top/vmstat 是入口,不是根因


🟡 第二层:研究生版(内核可观测与调度/软中断)

🎯 目标:理解 CPU 调度/软中断/内核链路 + eBPF追踪


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CPU 排障(研究生版)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

                   ┌──────────────┐
                   │ perf / bpf   │
                   └──────┬───────┘
                          │
    ┌─────────────────────┼─────────────────────┐
    │                     │                     │
 scheduler             interrupt             syscall
    │                     │                     │
    ▼                     ▼                     ▼
 sched_switch         softirq/irq          tracepoint
    │                     │                     │
    ▼                     ▼                     ▼
 runqueue分析       net_rx_action      syscall链路追踪
    │                     │                     │
    └──────────────┬──────┴──────────────┬──────┘
                   ▼                      ▼
           CPU竞争结构                内核执行路径
                   │
                   ▼
            🔬 深层Root Cause

核心工具

类型工具/命令功能
CPU调度 perf sched record / perf sched latency runqueue分析、context switch追踪
syscall strace -ff -tt -p PID 系统调用热点分析
softirq bpftrace -e 'kprobe:net_rx_action { @[comm] = count(); }' 网络软中断分析
runqueue /proc/sched_debug 调度队列长度/拥塞分析

研究生理解点

  1. CPU本质问题 = 调度问题
    谁在运行?谁被饿死?

  2. softirq隐藏杀手
    网络收包、IO completion、ksoftirqd消耗CPU

  3. context switch是性能黑洞
    切换越多,CPU看似忙,但吞吐下降


🔴 第三层:企业实战版(生产事故还原 + 系统性分析)

🎯 目标:还原线上CPU事故,做到应用/内核/硬件全链路定位


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CPU 排障(企业生产版)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

                    ┌──────────────┐
                    │ 监控告警     │
                    │ Prometheus   │
                    └──────┬───────┘
                           │
       ┌───────────────────┼────────────────────┐
       │                   │                    │
    CPU 100%            延迟飙升             机器抖动
       │                   │                    │
       ▼                   ▼                    ▼
  top + pidstat        trace分析         dmesg / irq
       │                   │                    │
       ▼                   ▼                    ▼
  perf top            火焰图             中断风暴
       │                   │                    │
       └──────────┬────────┴──────────┬────────┘
                  ▼                   ▼
          🔥 聚合分析层(核心)
                  │
    ┌─────────────┼──────────────┐
    │             │              │
 应用问题      内核问题        基础设施问题
 (bug/循环)   (softirq/sched)  (VM/NIC/磁盘)
    │             │              │
    └─────────────┴──────────────┘
                  ▼
         🎯 Root Cause + 修复策略

企业实战案例

Case原因工具
CPU 100% 但业务慢 GC频繁 / 锁竞争 / 死循环 perf top / jstack
CPU不高但系统卡 softirq爆炸 / IO拖慢 sar -n DEV / cat /proc/softirqs
机器抖动 IRQ不均衡 / CPU亲和性错误 / NUMA远端访问 irqbalance / numactl -H / mpstat -P ALL

企业核心认知

  1. CPU问题 = 系统性耦合问题(应用+内核+硬件+调度)

  2. 三大隐形CPU杀手:

    • softirq爆炸 → /proc/softirqs

    • 锁竞争 → perf lock

    • 虚拟化偷时间 → vmstat steal

  3. 企业诊断逻辑:

CPU高
  ↓
us高 → 应用问题
sy高 → 内核问题
wa高 → IO问题
si高 → 网络/softirq
否则 → steal / lock / NUMA

📌 三层课程对比总结

层级核心能力工具层级目标
本科 看懂CPU指标 top/vmstat/iostat 入门
研究生 内核追踪分析 perf / ftrace / bpf 原理理解
企业 故障定位 全链路工具 实战可落地

特点

  • 从入口指标到内核机制再到真实事故还原

  • 涵盖用户态/内核态/IO/软中断/调度/锁/CPU亲和性/NUMA/虚拟化/频率节流

  • ASCII结构图 + 工具链 + 实验 + 案例

  • 可直接备课、实验、企业培训


如果你希望,我可以帮你**把这个文档升级成完整PPT/实验手册+命令示例+事故题库版**,做到“一套文档覆盖本科→研究生→企业实战”。

我可以直接生成一份可交付教师用的全套课程包版本

你希望我直接生成吗?

posted on 2026-05-09 14:48  小镇-做题家  阅读(13)  评论(0)    收藏  举报

导航