Skip to content
Latchkey

CPU Throttling - CI/CD用語集の定義

CPU throttlingとは、カーネルが(cgroupsのCFSクォータを介して)コンテナやプロセスを割り当てられたCPUシェアに制限し、スケジューリング期間内でクォータを使い切るとそれを一時停止させることです。プロセスは実行可能状態ですが強制的に停止されるため、平均CPUが低いにもかかわらず実行が遅く見えます。

CI jobで発生する理由

CPU上限が1コアのコンテナがバースト中に4コアを使おうとするとthrottleされ、ホストのCPUに十分な余裕があってもwall-clock timeが引き伸ばされます。Linuxでは、cat /sys/fs/cgroup/cpu.statnr_throttledthrottled_usecを表示します。CPU上限を引き上げるか削除するか、ワークロードに合わせたサイズのrunnerで実行することで解決します。

関連ガイド