Informazioni sul numero massimo di istanze

Per impostazione predefinita, i servizi Cloud Run hanno un numero massimo di istanze determinato dal più basso dei seguenti limiti di quota pertinenti. Il limite massimo per ogni regione è influenzato anche dalla configurazione di CPU e memoria per il servizio Cloud Run. Nello specifico, il numero massimo di istanze disponibili per il tuo servizio è il minimo di ciascuno dei seguenti valori:

  • Quota CPU regionale divisa per la configurazione della CPU per il servizio.
  • Quota di memoria regionale divisa per la configurazione della memoria per il servizio.
  • Quota GPU regionale, con o senza ridondanza a livello di zona, divisa per la configurazione GPU per il servizio.

Ad esempio, una quota di base di 1000 vCPU o 2000 GiB di memoria consentirebbe a un deployment che utilizza 2 GiB di memoria o 1 CPU di specificare un massimo di 1000 istanze per un singolo servizio.

Queste quote vengono conteggiate anche come somma di tutte le risorse in uso nella regione tra le risorse Cloud Run. Potresti riscontrare errori di scalabilità o di avvio di nuove esecuzioni dei job se l'utilizzo totale raggiunge uno di questi limiti.

Puoi visualizzare i limiti di base totali di CPU, memoria e GPU per quota per regione nella pagina delle quote nella console.

Come aumentare la quota regionale di base

Se hai bisogno di un numero totale maggiore di CPU, memoria o GPU per la regione in cui è stato eseguito il deployment del tuo servizio Cloud Run, puoi richiedere un aumento della quota.

Best practice per l'impostazione del numero massimo di istanze

La sezione seguente descrive le best practice per configurare i limiti massimi delle istanze per i tuoi servizi.

Valore massimo ottimale delle istanze per i servizi basati su eventi

I servizi basati su eventi, come le funzioni, possono subire picchi di traffico sporadici in base agli eventi in entrata. Per determinare un valore massimo ottimale per questi servizi, devi considerare fattori quali il tempo di chiamata del servizio, la chiamata media prevista, la frequenza di chiamata di picco e la tolleranza agli errori per gli errori di chiamata.

Una buona regola pratica è iniziare con un valore di istanze massimo pari a 3, quindi monitorare gli errori di chiamata e aumentare il valore di istanze massimo in base alle necessità.

Gestisci le richieste quando tutte le istanze sono occupate

In circostanze normali, il servizio viene scalato creando nuove istanze per gestire il carico di traffico in entrata. Tuttavia, se hai impostato un limite massimo di istanze, potresti riscontrare uno scenario in cui non sono presenti istanze sufficienti per soddisfare il carico di traffico in entrata.

In questo scenario, Cloud Run tenta di gestire una nuova richiesta in entrata per un massimo di 30 secondi:

  • Se un'istanza termina l'elaborazione della richiesta durante questo periodo di tempo, potrebbe iniziare a elaborare la nuova richiesta in entrata.
  • Se non diventa disponibile alcuna istanza, la richiesta non andrà a buon fine.

Cloud Run salva automaticamente gli eventi destinati ai servizi basati su eventi finché non è disponibile capacità.

Limiti massimi delle istanze che superano la capacità di scalabilità di Cloud Run

Quando specifichi un limite massimo di istanze, stai specificando un limite superiore. L'impostazione di un limite elevato non significa che il servizio verrà scalato fino al numero specificato di istanze. Significa solo che il numero di istanze che coesistono in un determinato momento non deve superare il limite.

Inoltre, l'impostazione di un limite massimo di istanze potrebbe influire sulle strategie di scalabilità che Cloud Run utilizza per soddisfare la domanda di traffico. In generale, Cloud Run darà la priorità al rispetto del limite specificato anziché aumentare lo scale up e potenzialmente superare il limite.

Gestire i picchi di traffico

In alcuni casi, ad esempio in caso di picchi di traffico rapidi, Cloud Run potrebbe, per un breve periodo di tempo, creare più istanze rispetto al limite massimo di istanze specificato. Se il tuo servizio non può tollerare questo comportamento temporaneo, ti consigliamo di considerare un margine di sicurezza e impostare un valore massimo di istanze inferiore a quello che il tuo servizio può tollerare.

Deployment

Quando esegui il deployment di una nuova revisione, Cloud Run esegue la migrazione del traffico dalla revisione precedente a quella nuova. Poiché i limiti massimi delle istanze sono impostati per ogni revisione in modo indipendente, potresti superare temporaneamente il limite specificato nel periodo successivo al deployment.

Ad esempio, un servizio potrebbe avere un limite massimo di 5 istanze. In circostanze normali, il servizio viene scalato fino a 5 istanze durante la gestione delle richieste. Quando esegui il deployment di una nuova revisione, questa ha un proprio limite di istanze massime pari a 5.

Le richieste già gestite dalla revisione precedente non vengono interrotte quando implementi una nuova revisione. Queste richieste continuano a fare progressi. Le nuove richieste in entrata verranno gestite dalla revisione del servizio appena implementata.

Pertanto, il servizio nell'esempio precedente potrebbe avere fino a 10 istanze totali (5 per ogni revisione) nel periodo successivo al deployment della nuova revisione. Il tempo necessario per l'arresto delle istanze della revisione precedente dipende dal tempo necessario per completare la gestione di eventuali richieste attive. Questo è un fattore aggiuntivo da prendere in considerazione quando selezioni un limite massimo di istanze appropriato.