You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux内核cgroup v2 CFS中cpu.stat throttled_usec统计规则咨询

cgroup v2 CFS调度器中throttled_usec的统计逻辑

核心结论

throttled_usec统计的是cgroup整体被限流的总挂钟时间,而非所有单个线程限流时间的总和。

具体统计逻辑

当cgroup的CPU配额在周期内耗尽触发限流时,内核会记录限流开始的时间戳。只要cgroup处于限流状态,这段挂钟时间就会被持续累计——哪怕cgroup下有多个线程同时被阻塞等待配额恢复,也只会按实际流逝的挂钟时长统计,不会把每个线程的等待时间相加。

举个实际场景:假设cgroup下有3个线程,在同一段15ms的限流窗口里都无法获取CPU时间,那么throttled_usec只会增加15ms,而不是3×15=45ms。

5.14版本内核的实现细节

  • 内核通过struct cfs_rq(CFS运行队列)中的throttled_clock字段记录限流起始时间。
  • 触发限流时调用cfs_rq_throttle()标记起始点;当配额重置或限流解除时,调用cfs_rq_unthrottle()计算从起始到当前的挂钟时长,直接累加到cgroup的throttled_usec指标中。
  • 整个统计过程是针对cgroup的CFS调度实例整体进行的,不存在对单个线程的限流时间求和操作。

内容的提问来源于stack exchange,提问作者ALZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:42:03