De forma predeterminada, los servicios de Cloud Run tienen un máximo de 100 instancias. Puedes aumentar esta cantidad hasta el máximo permitido para tu región. El límite máximo de cada región también se ve afectado por la configuración de CPU y memoria de tu servicio de Cloud Run. Específicamente, la cantidad máxima de instancias disponibles para tu servicio es el mínimo de cada una de las siguientes opciones:
- referencia de cuota regional dividida por el múltiplo solicitado de 1 CPU
- referencia de cuota regional dividida por el múltiplo solicitado de 2 GB de memoria
Por ejemplo, una cuota de referencia de 1,000 instancias con 4 GB de memoria o 2 CPU tendrá un límite efectivo de 500.
Puedes ver la cuota de referencia por región en la página de cuotas de la consola.
Cómo aumentar la cuota regional del modelo de referencia
Si necesitas una cantidad máxima de instancias mayor para la región en la que se implementó tu servicio de Cloud Run, puedes solicitar un aumento de la cuota.
Prácticas recomendadas para establecer la cantidad máxima de instancias
En la siguiente sección, se describen las prácticas recomendadas para configurar los límites máximos de instancias para tus servicios.
Valor máximo óptimo de instancia para servicios basados en eventos
Los servicios basados en eventos, como las funciones, pueden experimentar aumentos repentinos de tráfico esporádicos según los eventos entrantes. Para determinar un valor óptimo de instancia máxima para estos servicios, debes considerar factores como el tiempo de invocación del servicio, la invocación promedio esperada, la frecuencia de invocación máxima y la tolerancia a fallas para las fallas de invocación.
Una buena regla general es comenzar con un valor máximo de 3 instancias y, luego, supervisar las fallas de invocación y ajustar el valor máximo de instancias hacia arriba según sea necesario.
Controla las solicitudes cuando todas las instancias están ocupadas
En circunstancias normales, tu servicio se escala creando instancias nuevas para controlar la carga de tráfico entrante. Sin embargo, cuando estableces un límite máximo de instancias, puede darse una situación en la que no hay suficientes instancias para cumplir con esa carga de tráfico entrante.
En ese caso, Cloud Run intenta entregar una solicitud entrante nueva durante un máximo de 30 segundos:
- Si una instancia termina de procesar su solicitud durante este período, es posible que comience a procesar la solicitud entrante nueva.
- Si no hay ninguna instancia disponible, la solicitud fallará.
Cloud Run guarda automáticamente los eventos destinados a servicios orientados a eventos hasta que la capacidad esté disponible.
Límites máximos de instancias que exceden la capacidad de escalamiento de Cloud Run
Cuando especificas un límite máximo de instancias, estás estableciendo un límite superior. Establecer un límite grande no significa que tu servicio escalará hasta la cantidad especificada de instancias. Solo significa que la cantidad de instancias que coexisten en cualquier momento no debe exceder el límite.
Además, establecer un límite máximo de instancias puede afectar las estrategias de escalamiento que Cloud Run usa para satisfacer tu demanda de tráfico. En general, Cloud Run priorizará el cumplimiento del límite especificado en lugar de escalarlo verticalmente y superarlo.
Controla los picos de tráfico
En algunos casos, como picos de tráfico rápidos, Cloud Run podría crear, durante un período breve, más instancias que el límite máximo especificado. Si tu servicio no puede tolerar este comportamiento temporal, tal vez desees tener en cuenta un margen de seguridad y establecer un valor de instancias máximo inferior al que puede tolerar tu servicio.
Implementaciones
Cuando implementas una revisión nueva, Cloud Run migra el tráfico de la revisión anterior a la nueva. Debido a que los límites máximos de instancias se establecen para cada revisión de forma independiente, es posible que excedas temporalmente el límite especificado durante el período posterior a la implementación.
Por ejemplo, un servicio puede tener un límite máximo de 5 instancias. En circunstancias normales, el servicio escala verticalmente hasta 5 instancias mientras controla las solicitudes. Cuando implementas una revisión nueva, esta tiene su propio límite máximo de 5 instancias.
Las solicitudes que controla la revisión anterior actualmente no se interrumpen cuando se implementa una revisión nueva. Por el contrario, estas solicitudes continúan progresando. La revisión de tu servicio que se implementó recientemente controlará las solicitudes entrantes nuevas.
Por lo tanto, el servicio del ejemplo anterior puede tener hasta 10 instancias totales (5 para cada revisión) durante el período posterior a la implementación de la revisión nueva. El tiempo requerido de finalización de las instancias de la revisión anterior depende del tiempo requerido para que esas instancias terminen de controlar cualquier solicitud activa. Este es un factor adicional que se debe tener en cuenta cuando se selecciona un límite máximo de instancias.