← 中文资源

简体中文版本

诊断容器 CPU 限流

读取 cgroup 限流计数,判断容器延迟来自 CPU 限制而非代码缓慢。

阅读英文原文

目标

服务在负载下出现延迟尖峰,团队怀疑代码,但也可能是容器被 CPU 限流。本配方读取 cgroup v2 的 cpu.stat,关注 nr_throttled 与 throttled_usec 的增长以确认限流,并与实际 CPU 使用量对比;提醒即使平均使用不高,周期内突发也可能触发限流,需关注每周期使用。

步骤要点

  1. 读取 cgroup 的限流计数。
  2. 关注 nr_throttled 与 throttled_usec 的增量。
  3. 把使用量与 limits 对比。
  4. 关注每周期突发,避免被平均值误导。
cat /sys/fs/cgroup/cpu.stat
# look at nr_throttled and throttled_usec

排错提示

  • 计数是累计值,需比较增量。
  • 平均使用低仍可能突发限流。
  • 提高 limit 需付出容量成本。

适用边界

  • 不替代算法层面的剖析。
  • 计数器需按时间比较增量。