目标
服务在负载下出现延迟尖峰,团队怀疑代码,但也可能是容器被 CPU 限流。本配方读取 cgroup v2 的 cpu.stat,关注 nr_throttled 与 throttled_usec 的增长以确认限流,并与实际 CPU 使用量对比;提醒即使平均使用不高,周期内突发也可能触发限流,需关注每周期使用。
步骤要点
- 读取 cgroup 的限流计数。
- 关注 nr_throttled 与 throttled_usec 的增量。
- 把使用量与 limits 对比。
- 关注每周期突发,避免被平均值误导。
cat /sys/fs/cgroup/cpu.stat
# look at nr_throttled and throttled_usec
排错提示
- 计数是累计值,需比较增量。
- 平均使用低仍可能突发限流。
- 提高 limit 需付出容量成本。
适用边界
- 不替代算法层面的剖析。
- 计数器需按时间比较增量。