runnerの稼働率とは?アイドル時間に支払っていないか?
runnerの稼働率は、支払っているrunner時間のうち実際に有用な作業をしている割合です - 残りは金を燃やしているアイドル容量です。
低い稼働率は静かなCIコストです。bootしたままアイドルのrunnerや、シングルスレッドのjobを動かす16コアのマシンは、価値を返さずに費やされた金です。稼働率を測ることで、どこに無駄があるかがわかります。
2種類の無駄
時間ベースの無駄は、課金されながらアイドルなrunner(過剰にプロビジョニングされたpool、遅いscale-down)です。リソースベースの無駄は、jobに対して大きすぎるrunner - シングルスレッドのビルドが決して触れないコアとメモリに支払うことです。
なぜ稼働率が下がるか
- ピークに合わせてサイジングされ、一日の大半アイドルな固定pool。
- 「念のため」に選ばれた過大なrunner。
- 支払い対象のrunner時間として数えられる長いプロビジョニングやキュー時間。
- 並列容量を使わずに残す逐次的なjob。
稼働率を高める
runnerをjobにright-sizingし、autoscalingとscale-to-zeroでアイドル時間のコストをゼロにし、作業を並列化してマシンを忙しく保ちます。秒単位課金も役立ちます - 切り上げられたアイドルの末尾に支払うのをやめられます。
マネージドrunner上の稼働率
マネージドプラットフォームは稼働率を自動的に高めます: scale-to-zeroがアイドルの無駄を取り除き、right-sizingが過大なマシンを避けます。Latchkeyの秒単位課金とautoscalingは、アイドルではなく作業に支払うことを意味します。
測定する
アクティブなjob時間を課金されたrunner時間の総計と対比し、要求したrunnerサイズをjobごとに実際に使われたCPUとメモリと比較しましょう。どちらの軸でも大きな差は、過剰プロビジョニングをまっすぐ指し示します - 最も安いCIの節約はたいていそこにあります。
重要なポイント
- 稼働率は支払ったrunner時間のうち有用な作業をしている割合です。
- アイドルなpoolと過大なrunnerが無駄の主な原因です。
- right-sizing、scale-to-zero、並列化がそれを高めます。
- autoscalingと秒単位課金がコストを実際の作業に合わせます。
関連ガイド
What Is a Build Minute? The Unit Your CI Bill Is Made OfA build minute is the billing unit for CI compute - one minute of runner time. Learn how OS multipliers and r…
What Is Runner Autoscaling? Capacity That Follows DemandRunner autoscaling automatically adds and removes CI runners based on job demand. Learn how it works, why it…
What Is Per-Job Runner Billing? Paying for Work, Not IdlePer-job runner billing charges for the runner time a job actually uses, often per second. Learn how it differ…
What Is Runner Concurrency? How Many Jobs Run at OnceRunner concurrency is how many CI jobs can run simultaneously. Learn how limits cause queues, how to size con…