Agent Runtime fornisce parametri di deployment che consentono di ottimizzare e scalare il rendimento degli agenti. Configurando questi parametri, puoi gestire in modo efficace pattern di traffico imprevedibili o con picchi.
Questa pagina descrive le best practice su come ottimizzare e scalare il rendimento di Agent Runtime, trattando i seguenti scenari:
Gli scenari mostrano come utilizzare i parametri di deployment per risolvere i colli di bottiglia comuni del rendimento , in particolare per i pattern di traffico imprevedibili e con picchi nelle applicazioni reali.
Problema di avvio a freddo
Un avvio a freddo si verifica quando arriva una richiesta e non sono presenti istanze o container inattivi per gestirla, il che costringe Agent Runtime ad avviarne una nuova. Questo aggiunge una latenza significativa alla richiesta.
Ad esempio, l'invio di 300 richieste simultanee a un agente con il valore predefinito min_instances=1 può mostrare i seguenti risultati:
Avvio a freddo (prima esecuzione): latenza media di circa 4,7 secondi.
Avvio tiepido (seconda esecuzione immediata): latenza media di circa 0,4 secondi.
Il sovraccarico di oltre quattro secondi è dovuto quasi interamente all'avvio di nuove istanze per gestire il carico.
Prova i seguenti metodi per mitigare il problema dell'avvio a freddo:
Imposta un valore
min_instancessufficientemente alto da gestire il traffico di base. Ad esempio, l'impostazione dimin_instances=10per l'agente di esempio può ridurre la latenza media per un avvio a freddo a circa 1,4 secondi. Per le applicazioni con traffico elevato o con picchi, impostamin_instancessu un valore in grado di gestire il carico tipico senza dover scalare da 1. Il valore massimo è 10.Invia un carico stabile, continuo e prevedibile ad Agent Runtime utilizzando una coda. Ad esempio, l'esecuzione di un test di carico sostenuto di 1500 query al minuto (25 query al secondo) per 60 secondi su un agente basato su Agent Development Kit (ADK) con
min_instances=10e il valore predefinitoconcurrency(9) può produrre il seguente risultato:- La latenza media è costantemente bassa, pari a circa 1,6 secondi.
Un carico stabile e continuo mantiene il servizio tiepido e garantisce prestazioni ottimali.
Worker asincroni sottoutilizzati
Per impostazione predefinita, container_concurrency è configurato per il codice sincrono, in cui ogni istanza di Agent Platform gestisce una sola richiesta alla volta.
Gli agenti asincroni, come quelli basati su
Agent Development Kit (ADK), possono gestire più richieste con
I/O limitato (come chiamate LLM o di strumenti) contemporaneamente.
Ad esempio, l'invio di 300 richieste simultanee a un agente basato su ADK con min_instances=10 e il valore predefinito container_concurrency=9 può produrre il seguente risultato:
- Sebbene la latenza mediana sia di circa 4 secondi, la latenza massima raggiunge i 60 secondi. Ciò indica che le richieste vengono messe in coda in modo pesante mentre il servizio esegue lentamente lo scale out.
Per mitigare i worker asincroni sottoutilizzati, aumenta container_concurrency per consentire a ogni istanza di Agent Platform di gestire più richieste. Il numero di richieste simultanee che ogni processo dell'agente può gestire è container_concurrency / 9. Il valore 9 rappresenta il numero di processi dell'agente in esecuzione in parallelo all'interno di ogni container.
Ad esempio, l'invio di 300 richieste simultanee allo stesso agente basato su ADK con min_instances=10 e container_concurrency=36 può produrre il seguente risultato:
- La latenza massima scende da 60 secondi a circa 7 secondi. Ciò dimostra che le istanze esistenti possono assorbire il picco di traffico in modo più efficace.
Per gli agenti asincroni (come gli agenti basati su ADK), imposta container_concurrency su un multiplo di 9 (ad esempio, 36) come punto di partenza. In questo modo, la reattività ai picchi di traffico migliora e la latenza dello scale out si riduce.
Tieni presente che l'impostazione di un valore container_concurrency troppo alto può comportare il rischio di errori di memoria insufficiente (OOM).
Passaggi successivi
Gestire gli agenti di cui è stato eseguito il deployment
Scopri come gestire gli agenti di cui è stato eseguito il deployment nel runtime gestito di Agent Platform.