Optimiza y escala el rendimiento del tiempo de ejecución del agente

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_instances que sea lo suficientemente alto como para controlar el tráfico de referencia. Por ejemplo, configurar min_instances=10 en 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, establece min_instances en 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 REST ReasoningEngineSpec.

  • 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=10 y el concurrency predeterminado (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?

Guía

Aprende a administrar los agentes que se implementaron en el entorno de ejecución administrado de Agent Platform.

Guía

Usar un agente con Agent Platform Runtime

Recurso

Obtén información sobre las cuotas y los límites de Agent Platform.