Skip to content
Latchkey

warm pool とは?事前起動された runner で待ち時間ゼロ

warm pool とは、すでに起動してアイドル状態にある runner の小さな予備であり、job が到着したときにゼロからマシンをプロビジョニングするのを待つのではなく、即座に開始できるようにするものです。

ephemeral runner はクリーンですが起動が遅く、どの新しいマシンも boot、登録、準備をしなければなりません。warm pool は、あらかじめ数台の runner を準備しておくことでそのレイテンシを隠し、わずかなアイドルコストと引き換えに大きな速度を得ます。

cold start の問題

新しい runner のプロビジョニングには時間がかかります。インスタンスを起動し、OS を boot し、runner エージェントを起動し、GitHub に登録します。完全に冷えた経路では、最初の step が実行される前に数十秒から数分かかることがあります。

warm pool がどう解決するか

プラットフォームは N 台の runner を事前起動・登録済みにして待機させます。job が到着すると、準備済みの runner を掴み、約 1 秒で開始します。プールはその後バックグラウンドで自身を補充するため、次の job も高速です。

プールのサイジング

  • 小さすぎる: バーストがプールをあふれさせ、オーバーフローした job が cold start に当たる。
  • 大きすぎる: 決して使われないアイドルマシンにお金を払う。
  • 適切なサイズ: プールが通常の並列度をカバーし、スパイクには autoscaling で対応する。

warm pool vs 永続的な runner

warm pool は、再利用による汚れなしに準備済みマシンの速度を提供します。プールの runner は依然として ephemeral で使い捨てです。高速な開始とクリーンな状態を同時に得られます。

Latchkey の warm pool

Latchkey は warm pool を維持するため、job は通常約 1 秒で開始し、キューも cold start の税もなく、各 runner は ephemeral のままです。

重要なポイント

  • warm pool とは、job を即座に掴む準備ができた、事前起動済みでアイドルの runner です。
  • 新しいマシンをプロビジョニングする cold start のレイテンシを隠します。
  • プールのサイズは、アイドルコストとオーバーフロー cold start の可能性のトレードオフです。
  • Latchkey は warm pool を使い、job が約 1 秒で開始します。

関連ガイド