コンテンツに移動
サーバーレス

新しい起動時 CPU ブーストにより Cloud Run と Cloud Functions のコールド スタートが改善

2022年10月3日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 9 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。

Cloud Run および Cloud Functions(第 2 世代)向けの起動時 CPU ブースト機能について発表いたします。この新機能を利用すると、Cloud Run および Cloud Functions のコールド スタート時間を大幅に減らすことができます。起動時 CPU ブーストでは、起動中により多くの CPU がコンテナに動的に割り振られて、より迅速にリクエストの処理を開始できます。Google が計測したいくつかのワークロードでは、起動時間が半分に削減されました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/CPU_boost_graphic.max-900x900.jpg

コールド スタートの「温度」を少し上げる

「コールド スタート」とは、リクエスト処理用に新しいコンテナ インスタンスを起動することが原因で、リクエストの処理にレイテンシが発生することです。たとえば、Cloud Run サービスがゼロ インスタンスにスケールダウンしたときに新しいリクエストがサービスに到達した場合、このリクエストを処理するには 1 つのインスタンスを起動する必要があります。0 から 1 にスケーリングする場合のほかに、複数のサービスが 1 つの同時リクエストを処理するように構成されている場合や、トラフィック スケーリングが行われる場合にも、コールド スタートの発生が多く見られます。最小インスタンス数を使用すると、インスタンス数が 0 から 1 になるときのコールド スタートを排除できますが、トラフィック スケーリングによってインスタンス数が増えることもあるので、最小インスタンス数はあらゆるコールド スタートの解決策ではありません。起動時 CPU ブーストはコールド スタート レイテンシをよりよく制御するための Google の継続的な取り組みの一環であり、すべてのコールド スタートの高速化に役立つ可能性があります。

結果

特に Java アプリケーションでは、起動時 CPU ブースト機能の効果が極めて大きいようです。社内テスターと限定公開プレビューのお客様からの報告によると、Java アプリケーションで起動時間が次のように短縮されました。

Node.js を使って限定公開プレビューでこの機能をテストしたお客様の観察によると、起動時間が最大で 30% 短縮されました。Node.js は本質的に単一スレッドであるため Java に比べると効果はやや少ないですが、それでも大きな改善です。それぞれの言語、フレームワーク、コードベースによって異なるレベルの効果が見られるでしょう。

使ってみる

既存の Cloud Run サービスで起動時 CPU ブーストを有効にするには、次のように 1 つのコマンドを使用するだけです。

読み込んでいます...

https://storage.googleapis.com/gweb-cloudblog-publish/images/startup_cpu_boost.max-2000x2000.jpg

さらに、Cloud Functions では起動時 CPU ブーストがデフォルトで使用されます。詳しくはドキュメントをご覧ください。


- グループ プロダクト マネージャー Steren Giannini
投稿先