Agent Runtime のパフォーマンスを最適化してスケーリングする

Agent Runtime には、エージェントのパフォーマンスを最適化してスケーリングできるデプロイ パラメータが用意されています。これらのパラメータを構成することで、予測不能なトラフィック パターンや急増するトラフィック パターンを効果的に処理できます。

このページでは、Agent Runtime のパフォーマンスを最適化してスケーリングする方法に関するベスト プラクティスについて説明します。次のシナリオについて説明します。

これらのシナリオでは、デプロイ パラメータを使用して、一般的なパフォーマンス ボトルネックを解決する方法を示します。特に、実際のアプリケーションで予測できない急増するトラフィック パターンを解決する方法を示します。

コールド スタートの問題

コールド スタートは、リクエストが到着したときに、リクエストを処理するアイドル状態のインスタンスまたはコンテナがない場合に発生します。この場合、Agent Runtime は新しいインスタンスまたはコンテナを起動する必要があります。これにより、リクエストに大きなレイテンシが発生します。

たとえば、デフォルトの min_instances=1 を使用してエージェントに 300 件の同時リクエストを送信すると、次のような結果が表示されます。

  • コールド スタート(初回実行): 平均レイテンシは約 4.7 秒です。

  • ウォーム スタート(2 回目の即時実行): 平均レイテンシは約 0.4 秒。

4 秒を超えるオーバーヘッドは、ほとんどすべて、負荷を処理するために新しいインスタンスが起動することによるものです。

コールド スタートの問題を軽減するには、次の方法を試してください。

  • ベースライン トラフィックを処理するのに十分な min_instances 値を設定します。たとえば、サンプル エージェントに min_instances=10 を設定すると、コールド スタートの平均レイテンシを約 1.4 秒に短縮できます。トラフィックが急増するアプリケーションやトラフィックが多いアプリケーションの場合は、1 からスケーリングすることなく、一般的な負荷を処理できる値に min_instances を設定します。使用可能な値の範囲については、ReasoningEngineSpec REST リソース リファレンスをご覧ください。

  • キューを使用して、安定した、継続的で予測可能な負荷を Agent Runtime に送信します。たとえば、min_instances=10 とデフォルトの concurrency(9)を使用して、Agent Development Kit(ADK)ベースのエージェントで 1 分あたり 1,500 クエリ(1 秒あたり 25 秒間クエリ数)の持続的な負荷テストを 60 秒間実行すると、次の結果が得られます。

    • 平均レイテンシは一貫して低く、約 1.6 秒です。

安定した継続的な負荷により、サービスがウォーム状態に保たれ、最適なパフォーマンスが得られます。

十分に活用されていない非同期ワーカー

デフォルトでは、container_concurrency は同期コード用に構成されており、各 Agent Platform インスタンスは一度に 1 つのリクエストのみを処理します。Agent Development Kit(ADK)に基づくエージェントなどの非同期エージェントは、複数の I/O バウンド リクエスト(LLM 呼び出しやツール呼び出しなど)を同時に処理できます。

たとえば、min_instances=10 とデフォルトの container_concurrency=9 を使用して ADK ベースのエージェントに 300 件の同時リクエストを送信すると、次の結果が得られます。

  • レイテンシの中央値は約 4 秒ですが、最大レイテンシは 60 秒に急増しています。これは、サービスがゆっくりとスケールアウトする間に、リクエストが大量にキューに格納されていることを示しています。

使用率の低い非同期ワーカーを軽減するには、container_concurrency を増やして、各 Agent Platform インスタンスが複数のリクエストを処理できるようにします。各エージェント プロセスが処理できる同時リクエストの数は container_concurrency / 9 です。値 9 は、各コンテナ内で並列に実行されているエージェント プロセスの数を表します。

たとえば、min_instances=10 と container_concurrency=36 を使用して同じ ADK ベースのエージェントに 300 件の同時リクエストを送信すると、次の結果が得られます。

  • 最大レイテンシが 60 秒から約 7 秒に短縮されます。これは、既存のインスタンスがトラフィックの急増をより効果的に吸収できることを示しています。

非同期エージェント(ADK ベースのエージェントなど)の場合は、開始点として container_concurrency を 9 の倍数(36 など)に設定します。これにより、トラフィックの急増に対する応答性が向上し、スケールアウトによるレイテンシが短縮されます。

container_concurrency の値を高く設定しすぎると、メモリ不足(OOM)エラーが発生する可能性があります。

次のステップ

ガイド

Agent Platform マネージド ランタイムにデプロイされたエージェントを管理する方法について説明します。

ガイド

Agent Platform Runtime でエージェントを使用します。

リソース

Agent Platform の割り当てと上限について学習します。