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.statがnr_throttledとthrottled_usecを表示します。CPU上限を引き上げるか削除するか、ワークロードに合わせたサイズのrunnerで実行することで解決します。
関連ガイド
Memory Pressure - CI/CD Glossary DefinitionMemory Pressure: Memory pressure is the condition where available RAM is scarce, forcing the kernel to reclai…
Wall-Clock Time - CI/CD Glossary DefinitionWall-Clock Time: Wall-clock time (elapsed or real time) is the actual time that passes from a job start to it…
vCPU - CI/CD Glossary DefinitionvCPU: A vCPU (virtual CPU) is one thread of a physical processor core that a cloud provider presents to a vir…