Leistung der Agent-Laufzeit optimieren und skalieren

Agent Runtime bietet Bereitstellungsparameter, mit denen Sie die Leistung Ihrer Agents optimieren und skalieren können. Durch die Konfiguration dieser Parameter können Sie unvorhersehbare oder unregelmäßige Trafficmuster effektiv verarbeiten.

Auf dieser Seite werden Best Practices zur Optimierung und Skalierung der Leistung für Agent Runtime beschrieben. Dabei werden die folgenden Szenarien behandelt:

Die Szenarien zeigen, wie Sie Bereitstellungsparameter verwenden, um gängige Leistungsengpässe zu beheben, insbesondere bei unvorhersehbaren, unregelmäßigen Traffic-Mustern in realen Anwendungen.

Kaltstartproblem

Ein Kaltstart tritt auf, wenn eine Anfrage eingeht und keine inaktiven Instanzen oder Container vorhanden sind, um sie zu verarbeiten. Agent Runtime muss dann eine neue Instanz oder einen neuen Container starten. Dies führt zu einer erheblichen Latenz bei der Anfrage.

Wenn Sie beispielsweise 300 gleichzeitige Anfragen an einen Agenten mit dem Standardwert min_instances=1 senden, können die folgenden Ergebnisse angezeigt werden:

  • Kaltstart (erste Ausführung): Durchschnittliche Latenz von etwa 4,7 Sekunden.

  • Warmstart (unmittelbarer zweiter Durchlauf): Durchschnittliche Latenz von etwa 0,4 Sekunden.

Der Overhead von mehr als vier Sekunden ist fast ausschließlich darauf zurückzuführen, dass neue Instanzen gestartet werden, um die Last zu bewältigen.

Versuchen Sie, das Kaltstartproblem mit den folgenden Methoden zu beheben:

  • Legen Sie einen min_instances-Wert fest, der hoch genug ist, um den Baseline-Traffic zu verarbeiten. Wenn Sie beispielsweise min_instances=10 für den Beispiel-Agenten festlegen, kann die durchschnittliche Latenz für einen Kaltstart auf etwa 1,4 Sekunden reduziert werden. Legen Sie für Anwendungen mit unregelmäßigem oder hohem Traffic min_instances auf einen Wert fest, der die typische Last bewältigen kann, ohne dass von 1 skaliert werden muss. Informationen zu den zulässigen Werten finden Sie in der REST-Ressourcenreferenz zu ReasoningEngineSpec.

  • Senden Sie eine stabile, kontinuierliche und vorhersehbare Last mithilfe einer Warteschlange an Agent Runtime. Wenn Sie beispielsweise einen kontinuierlichen Lasttest mit 1.500 Anfragen pro Minute (25 Anfragen pro Sekunde) für 60 Sekunden auf einem Agenten, der auf dem Agent Development Kit (ADK) basiert, mit min_instances=10 und dem Standardwert concurrency (9) ausführen, kann das folgende Ergebnis erzielt werden:

    • Die durchschnittliche Latenz ist mit etwa 1,6 Sekunden durchgehend niedrig.

Eine stabile, kontinuierliche Last hält den Dienst warm und führt zu einer optimalen Leistung.

Nicht ausgelastete asynchrone Worker

Standardmäßig ist container_concurrency für synchronen Code konfiguriert, wobei jede Agent Platform-Instanz jeweils nur eine Anfrage verarbeitet. Asynchrone Agenten, z. B. solche, die auf dem Agent Development Kit (ADK) basieren, können mehrere E/A-gebundene Anfragen (z. B. LLM- oder Toolaufrufe) gleichzeitig verarbeiten.

Wenn Sie beispielsweise 300 gleichzeitige Anfragen an einen ADK-basierten Agenten mit min_instances=10 und dem Standardwert container_concurrency=9 senden, kann das folgende Ergebnis erzielt werden:

  • Die mittlere Latenz beträgt etwa 4 Sekunden, die maximale Latenz steigt jedoch auf 60 Sekunden an. Das bedeutet, dass Anfragen stark in die Warteschlange gestellt werden, während der Dienst langsam horizontal skaliert wird.

Um die Auslastung asynchroner Worker zu verbessern, erhöhen Sie container_concurrency, damit jede Agent Platform-Instanz mehrere Anfragen verarbeiten kann. Die Anzahl der gleichzeitigen Anfragen, die jeder Agent-Prozess verarbeiten kann, beträgt container_concurrency / 9. Der Wert 9 steht für die Anzahl der Agent-Prozesse, die in jedem Container parallel ausgeführt werden.

Wenn Sie beispielsweise 300 gleichzeitige Anfragen an denselben ADK-basierten Agenten mit min_instances=10 und container_concurrency=36 senden, kann das folgende Ergebnis erzielt werden:

  • Die maximale Latenz sinkt von 60 Sekunden auf etwa 7 Sekunden. Das zeigt, dass vorhandene Instanzen den Traffic-Anstieg effektiver bewältigen können.

Legen Sie für asynchrone Agenten (z. B. ADK-basierte Agenten) container_concurrency als Vielfaches von 9 (z. B. 36) als Ausgangspunkt fest. Dies verbessert die Reaktionsfähigkeit auf Traffic-Spitzen und reduziert die Latenz durch horizontales Skalieren.

Wenn Sie den Wert container_concurrency zu hoch festlegen, kann es zu Fehlern aufgrund fehlenden Speichers (OOM, Out-of-memory) kommen.

Nächste Schritte

Anleitung

Hier erfahren Sie, wie Sie KI-Agenten verwalten, die in der verwalteten Laufzeit der Agent Platform bereitgestellt wurden.

Anleitung

Agenten mit Agent Platform Runtime verwenden

Ressource

Informationen zu Kontingenten und Limits für die Agent Platform.