Informazioni sul numero massimo di istanze

Per impostazione predefinita, i servizi Cloud Run hanno un numero massimo di istanze determinato dal più basso tra i limiti di quota pertinenti riportati di seguito. Il limite massimo per ogni regione dipende anche dalla configurazione di CPU e memoria per il servizio Cloud Run. In particolare, il numero massimo di istanze disponibili per il tuo servizio è il minimo di ognuna delle seguenti:

  • base di riferimento della quota limite di istanze regionale divisa per il multiplo richiesto di 1 CPU
  • base della quota del limite di istanze regionale divisa per il multiplo richiesto di 2 GB di memoria
  • Quota di 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 del servizio.

Ad esempio, una quota limite di istanze di base di 1000 istanze con 4 GB di memoria o 2 CPU e 2000 vCPU e un limite di 4000 GiBy otterrà un limite effettivo di 500.

Puoi visualizzare il limite di istanza di base per la quota per la tua regione nella pagina delle quote della console.

Come aumentare la quota regionale di riferimento

Se hai bisogno di un numero massimo di istanze maggiore per la tua regione in cui viene eseguito il deployment del servizio Cloud Run, puoi richiedere un aumento della quota.

Best practice per l'impostazione del numero massimo di istanze

La seguente sezione descrive le best practice per configurare i limiti massimi di istanza per i tuoi servizi.

Valore massimo ottimale dell'istanza per i servizi basati su eventi

I servizi basati su eventi, ad esempio le funzioni, possono riscontrare picchi di traffico sporadici in base agli eventi in entrata. Per determinare un valore massimo ottimale dell'istanza per questi servizi, devi prendere in considerazione fattori quali tempo di chiamata al servizio, chiamata media prevista, frequenza di picco di chiamata e tolleranza di errore per gli errori di chiamata.

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

Gestisci le richieste quando tutte le istanze sono occupate

In circostanze normali, il servizio esegue lo scale up creando nuove istanze per gestire il carico del traffico in entrata. Tuttavia, se imposti un limite massimo di istanze, potresti riscontrare uno scenario in cui le istanze non sono sufficienti per soddisfare il carico del 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 di elaborare la richiesta durante questo periodo di tempo, potrebbe iniziare a elaborare la nuova richiesta in entrata.
  • Se nessuna istanza diventa disponibile, la richiesta avrà esito negativo.

Cloud Run salva automaticamente gli eventi destinati ai servizi basati su eventi fino a quando non è disponibile capacità.

Limiti di istanza massimi che superano la capacità di scalabilità di Cloud Run

Quando specifichi un limite massimo di istanze, indichi un limite superiore. L'impostazione di un limite elevato non significa che il servizio farà lo scale up fino al numero specificato di istanze. Significa solo che il numero di istanze che coesisteno in qualsiasi momento non deve superare il limite.

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

Gestire i picchi di traffico

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

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 di istanze vengono impostati in modo indipendente per ogni revisione, potresti superare temporaneamente il limite specificato durante il periodo successivo al deployment.

Ad esempio, un servizio potrebbe avere un limite massimo di 5 istanze. In circostanze normali, il servizio scala fino a 5 istanze mentre gestisce le richieste. Quando esegui il deployment di una nuova revisione, quest'ultima ha un proprio limite massimo di 5 istanze.

Le richieste già gestite dalla revisione precedente non vengono interrotte quando esegui il deployment di una nuova revisione. Queste richieste continuano invece a progredire. Le nuove richieste in entrata verranno gestite dalla revisione del servizio di cui è stato appena eseguito il deployment.

Di conseguenza, il servizio nell'esempio precedente potrebbe avere fino a 10 istanze totali (5 per ogni revisione) durante il periodo successivo al deployment della nuova revisione. Il tempo necessario al termine delle istanze della revisione precedente dipende dal tempo necessario a queste ultime per terminare la gestione delle richieste attive. Questo è un fattore aggiuntivo da tenere in considerazione quando selezioni un limite massimo di istanze appropriato.