Acerca de la cantidad máxima de instancias

De forma predeterminada, los servicios de Cloud Run tienen una cantidad máxima de instancias determinada por el más bajo de los siguientes límites de cuota relevantes. El límite máximo de cada región también se ve afectado por la configuración de CPU y memoria del servicio de Cloud Run. Específicamente, la cantidad máxima de instancias disponibles para tu servicio es la mínima de cada una de las siguientes opciones:

  • modelo de referencia de la cuota límite de instancias regional dividido por el múltiplo solicitado de 1 CPU
  • modelo de referencia de cuota de límite de instancias regional dividido por el múltiplo solicitado de 2 GB de memoria
  • cuota de CPU regional dividida por la configuración de CPU para el servicio.
  • cuota de memoria regional dividida por la configuración de memoria del servicio
  • cuota de GPU regional, con o sin redundancia zonal, dividida por la configuración de GPU para el servicio

Por ejemplo, una cuota límite de instancias de 1,000 instancias con 4 GB de memoria o 2 CPU y 2,000 CPU virtuales con un límite de 4,000 GiBy tendrá un límite efectivo de 500.

Puedes ver la cuota del límite de instancias por región del modelo de referencia para tu región en la página de cuotas de la consola.

Cómo aumentar la cuota regional de referencia

Si necesitas una cantidad máxima mayor de instancias para la región en la que se implementa tu servicio de Cloud Run, puedes solicitar un aumento de la cuota.

Prácticas recomendadas para configurar una 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 de los servicios.

Valor máximo de instancia óptimo para los servicios controlados por eventos

Los servicios controlados por eventos, como las funciones, pueden experimentar aumentos de tráfico esporádicos basados en eventos entrantes. A fin de determinar un valor máximo de instancia óptimo para estos servicios, debes considerar factores como la hora de invocación del servicio, la invocación promedio esperada, la frecuencia máxima de invocación y la tolerancia a errores 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 solicitudes cuando todas las instancias están ocupadas

En circunstancias normales, tu servicio escala verticalmente mediante la creación de 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 esa situación, 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 de forma automática los eventos destinados a servicios controlados por 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á verticalmente 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 podría afectar las estrategias de escalamiento que usa Cloud Run para satisfacer tu demanda de tráfico. En general, Cloud Run priorizará el cumplimiento del límite especificado en lugar de escalar verticalmente y superarlo.

Controla los aumentos repentinos de tráfico

En algunos casos, como los aumentos rápidos de tráfico, Cloud Run podría, durante un corto período, crear más instancias que el límite máximo especificado. Si tu servicio no puede tolerar este comportamiento temporal, te recomendamos que tengas en cuenta un margen de seguridad y establezcas 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 de forma temporal 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 ya maneja la revisión anterior no se interrumpen cuando implementas una revisión nueva. Por el contrario, estas solicitudes continúan progresando. La revisión recién implementada de tu servicio se encargará de controlar las solicitudes entrantes nuevas.

Por lo tanto, el servicio del ejemplo anterior podría tener hasta 10 instancias totales (5 por cada revisión) durante el período posterior a la implementación de la revisión nueva. La cantidad de tiempo requerida para que finalicen las instancias de la revisión anterior depende del tiempo requerido para que esas instancias terminen de controlar las solicitudes activas. Este es un factor adicional que se debe tener en cuenta cuando se selecciona un límite máximo de instancias.