エージェント ランタイムのパフォーマンスを最適化してスケーリングする

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 を設定します。最大値は 10 です。

  • キューを使用して、安定した連続的で予測可能な負荷を 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=10container_concurrency=36 を使用して、同じ ADK ベースのエージェントに 300 件の同時リクエストを送信すると、次の結果が得られます。

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

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

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

次のステップ

ガイド

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

ガイド

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

リソース

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