De forma predeterminada, los servicios de Cloud Run tienen un número máximo de instancias determinado por el límite de cuota pertinente más bajo de los siguientes. 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. En concreto, el número máximo de instancias disponibles para tu servicio es el mínimo de cada uno de los siguientes valores:
- la base de la cuota de límite de instancias regional dividida entre el múltiplo de 1 CPU solicitado
- cuota de límite de instancias regional de referencia dividida entre el múltiplo de 2 GB de memoria solicitado
- La cuota de CPU regional dividida entre la configuración de CPU del servicio.
- Cuota de memoria regional dividida entre la configuración de memoria del servicio.
- Cuota de GPU regional, con o sin redundancia zonal, dividida por la configuración de GPU del servicio.
Por ejemplo, si tienes una cuota de límite de instancias de referencia de 1000 instancias con 4 GB de memoria o 2 CPU y un límite de 2000 vCPU y 4000 GiBy, el límite efectivo será de 500.
Puedes consultar la cuota de límite de instancias de referencia por región de tu región en la página de cuotas de la consola.
Cómo aumentar la cuota regional de referencia
Si necesitas un número máximo de instancias mayor para la región en la que se ha desplegado tu servicio de Cloud Run, puedes solicitar un aumento de cuota.
Prácticas recomendadas para definir el número máximo de instancias
En la siguiente sección se describen las prácticas recomendadas para configurar los límites máximos de instancias de tus servicios.
Valor máximo óptimo de las instancias de servicios basados en eventos
Los servicios basados en eventos, como las funciones, pueden experimentar picos de tráfico esporádicos en función de los eventos entrantes. Para determinar un valor máximo de instancia óptimo para estos servicios, debe tener en cuenta factores como el tiempo de invocación del servicio, la invocación media esperada, la frecuencia máxima de invocación y la tolerancia a fallos de las invocaciones.
Una buena regla general es empezar con un valor de instancias máximo de 3, monitorizar los errores de invocación y aumentar el valor de instancias máximo según sea necesario.
Gestionar solicitudes cuando todas las instancias estén ocupadas
En circunstancias normales, tu servicio se amplía creando nuevas instancias para gestionar la carga de tráfico entrante. Sin embargo, si has definido un límite máximo de instancias, es posible que te encuentres en una situación en la que no haya suficientes instancias para satisfacer la carga de tráfico entrante.
En ese caso, Cloud Run intenta atender una nueva solicitud entrante durante un máximo de 30 segundos:
- Si una instancia termina de procesar su solicitud durante este periodo, puede que empiece a procesar la nueva solicitud entrante.
- Si no hay ninguna instancia disponible, la solicitud fallará.
Cloud Run guarda automáticamente los eventos destinados a servicios basados en eventos hasta que haya capacidad disponible.
Límites máximos de instancias que superan la capacidad de escalado de Cloud Run
Cuando especificas un límite máximo de instancias, estás indicando un límite superior. Definir un límite alto no significa que tu servicio se vaya a ampliar hasta el número de instancias especificado. Solo significa que el número de instancias que coexisten en cualquier momento no debe superar el límite.
Además, si se define un límite máximo de instancias, puede que se vean afectadas las estrategias de escalado que Cloud Run usa para satisfacer la demanda de tráfico. Por lo general, Cloud Run dará prioridad a respetar el límite que hayas especificado en lugar de aumentar la escala y superar el límite.
Gestionar picos de tráfico
En algunos casos, como en los picos de tráfico rápidos, Cloud Run puede crear más instancias que el límite máximo especificado durante un breve periodo. Si tu servicio no puede tolerar este comportamiento temporal, te recomendamos que incluyas un margen de seguridad y definas un valor de instancias máximo inferior al que tu servicio puede tolerar.
Despliegues
Cuando implementas una nueva revisión, Cloud Run migra el tráfico de la revisión anterior a la nueva. Como los límites máximos de instancias se definen para cada revisión de forma independiente, es posible que superes temporalmente el límite especificado durante el periodo posterior a la implementación.
Por ejemplo, un servicio puede tener un límite de 5 instancias. En circunstancias normales, el servicio se escala hasta cinco instancias a medida que gestiona las solicitudes. Cuando despliegas una revisión nueva, esta tiene su propio límite de 5 instancias máximas.
Las solicitudes que ya esté gestionando la revisión anterior no se interrumpirán cuando despliegues una nueva revisión. En su lugar, estas solicitudes siguen avanzando. Las nuevas solicitudes entrantes se gestionarán con la revisión recién implementada de tu servicio.
Por lo tanto, el servicio del ejemplo anterior podría tener hasta 10 instancias en total (5 por cada revisión) durante el periodo posterior a la implementación de la nueva revisión. El tiempo necesario para que finalicen las instancias de la revisión anterior depende del tiempo que tarden esas instancias en gestionar las solicitudes activas. Este es un factor adicional que debe tener en cuenta al seleccionar un límite de instancias máximo adecuado.