Agent Runtime proporciona parámetros de implementación que te permiten optimizar y escalar el rendimiento de tus agentes. Si configuras estos parámetros, puedes controlar los patrones de tráfico impredecibles o con aumentos repentinos de forma eficaz.
En esta página, se describen las prácticas recomendadas para optimizar y escalar el rendimiento de Agent Runtime, que abarca las siguientes situaciones:
En las situaciones, se muestra cómo usar los parámetros de implementación para resolver cuellos de botella de rendimiento comunes, en especial para patrones de tráfico impredecibles y con aumentos repentinos en aplicaciones del mundo real.
Problema de inicio en frío
Un inicio en frío se produce cuando llega una solicitud y no hay instancias ni contenedores inactivos para entregarla, lo que obliga a Agent Runtime a iniciar uno nuevo. Esto agrega una latencia significativa a la solicitud.
Por ejemplo, enviar 300 solicitudes simultáneas a un agente con el min_instances=1 predeterminado puede mostrar los siguientes resultados:
Inicio en frío (primera ejecución): Latencia promedio de aproximadamente 4.7 segundos.
Inicio semicaliente (segunda ejecución inmediata): Latencia promedio de aproximadamente 0.4 segundos.
La sobrecarga de más de cuatro segundos se debe casi por completo a que se inician instancias nuevas para controlar la carga.
Prueba los siguientes métodos para mitigar el problema de inicio en frío:
Establece un valor de
min_instancesque sea lo suficientemente alto como para controlar el tráfico de referencia. Por ejemplo, configurarmin_instances=10en el agente de ejemplo puede reducir la latencia promedio de un inicio en frío a aproximadamente 1.4 segundos. Para las aplicaciones con tráfico alto o con aumentos repentinos, establecemin_instancesen un valor que pueda controlar tu carga típica sin necesidad de escalar desde 1. Para conocer el rango de valores aceptados, consulta la referencia del recurso de RESTReasoningEngineSpec.Envía una carga estable, continua y predecible a Agent Runtime con una cola. Por ejemplo, ejecutar una prueba de carga sostenida de 1,500 consultas por minuto (25 consultas por segundo) durante 60 segundos en un agente basado en el Kit de desarrollo de agentes (ADK) con
min_instances=10y elconcurrencypredeterminado (9) puede producir el siguiente resultado:- La latencia promedio es constantemente baja, de aproximadamente 1.6 segundos.
Una carga estable y continua mantiene el servicio activo y genera un rendimiento óptimo.
Trabajadores asíncronos infrautilizados
De forma predeterminada, container_concurrency está configurado para código síncrono, en el que
cada instancia de Agent Platform controla solo una solicitud a la vez.
Los agentes asíncronos, como los que se basan en el
ADK, pueden controlar varias
solicitudes vinculadas a E/S (como llamadas a LLM o herramientas) de forma simultánea.
Por ejemplo, enviar 300 solicitudes simultáneas a un agente basado en ADK con min_instances=10 y el container_concurrency=9 predeterminado puede producir el siguiente resultado:
- Si bien la latencia mediana es de aproximadamente 4 segundos, la latencia máxima alcanza un pico de 60 segundos. Esto indica que las solicitudes se ponen en cola de forma masiva mientras el servicio se escala horizontalmente de forma lenta.
Para mitigar los trabajadores asíncronos infrautilizados, aumenta container_concurrency
para permitir que cada instancia de Agent Platform controle varias solicitudes. La
cantidad de solicitudes simultáneas que puede controlar cada proceso de agente es
container_concurrency / 9. El valor 9 representa la cantidad de procesos del agente
que se ejecutan en paralelo dentro de cada contenedor.
Por ejemplo, enviar 300 solicitudes simultáneas al mismo agente basado en ADK con min_instances=10 y container_concurrency=36 puede producir el siguiente resultado:
- La latencia máxima disminuye de 60 segundos a aproximadamente 7 segundos. Esto demuestra que las instancias existentes pueden absorber el aumento repentino en el tráfico de manera más eficaz.
Para los agentes asíncronos (como los basados en ADK), establece container_concurrency en un múltiplo de 9 (por ejemplo, 36) como punto de partida. Esto mejora
la capacidad de respuesta a los aumentos repentinos de tráfico y reduce la latencia del escalamiento horizontal.
Ten en cuenta que establecer un valor demasiado alto para container_concurrency puede provocar errores de memoria insuficiente (OOM).
¿Qué sigue?
Administrar agentes implementados
Aprende a administrar los agentes que se implementaron en el entorno de ejecución administrado de Agent Platform.