CPU 调度不只是 FCFS、RR、CFS 这些算法名词。排查线上问题时,还要弄清线程为什么被换下去、上下文切换的成本在哪里,以及 load average 很高但 CPU 使用率不高意味着什么。
这些问题背后是同一组约束:CPU 核心有限,任务需要排队,调度器负责决定谁先运行;系统指标则帮助判断任务是在争抢 CPU、等待 I/O,还是卡在内核、中断或虚拟化层。
比如一台有 8 个逻辑 CPU 的机器,load average 已到 40,但 CPU 还有空闲,%Cpu(s) 里的 wa 长期偏高。此时直接去找 CPU 热点函数可能没有结果,机器上更可能堆了一批等待 I/O 的任务。CPU 使用率和 load average 需要分开判断。
