In questa pagina viene descritto come impostare i limiti di memoria.
Informazioni sull'utilizzo della memoria
Le istanze di Cloud Run che superano il limite di memoria consentito vengono terminate.
Quanto segue viene conteggiato ai fini della memoria disponibile dell'istanza:
- Esecuzione dell'eseguibile dell'applicazione (poiché l'eseguibile deve essere caricato in memoria)
- Allocazione della memoria nel processo di applicazione
- Scrittura di file nel file system
Le dimensioni dell'immagine container di cui è stato eseguito il deployment non vengono conteggiate ai fini della memoria disponibile.
Impostare e aggiornare i limiti di memoria
Puoi impostare limiti di memoria sui servizi Cloud Run. Per impostazione predefinita, la memoria allocata a ogni istanza di una revisione è 512 MiB.
CPU minime richieste
Quando imposti un limite di memoria, sono richiesti i seguenti limiti minimi di CPU:
Memoria | Numero minimo di CPU richieste |
---|---|
Più di 4 GiB | 2 |
Più di 8 GiB | 4 |
Più di 16 GiB | 6 |
Più di 24 GiB | 8 |
Quantità massima di memoria
La quantità massima di memoria che puoi configurare è
32 gibibyte (32 Gi
).
Memoria minima
L'impostazione della memoria minima varia a seconda che utilizzi un ambiente di esecuzione di prima generazione o di seconda generazione:
- 128 MiB per la prima generazione
- 512 MiB per la seconda generazione
Configura limiti di memoria
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche per le revisioni successive verrà applicata automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Per i servizi Cloud Run, puoi impostare i limiti di memoria utilizzando la console Google Cloud, la riga di comando gcloud o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio in base alle tue esigenze, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Seleziona le dimensioni della memoria che preferisci dall'elenco a discesa Memoria.
Fai clic su Crea o Esegui il deployment.
Riga di comando
Puoi aggiornare l'allocazione della memoria di un determinato servizio utilizzando questo comando:
gcloud run services update SERVICE --memory SIZE
Sostituisci SERVICE con il nome del tuo servizio e SIZE con le dimensioni di memoria che vuoi. Il formato delle dimensioni è un numero fisso o in virgola mobile seguito
da un'unità: G
o M
, corrispondenti rispettivamente a gigabyte o megabyte,
o usa la potenza di due equivalenti: Gi
o Mi
,
corrispondenti rispettivamente a gibibyte o mebibyte.
Puoi anche impostare i limiti di memoria durante il deployment utilizzando il comando:
gcloud run deploy --image IMAGE_URL --memory SIZE
Sostituisci
- IMAGE_URL con un riferimento all'immagine container,
ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SIZE con i valori descritti sopra.
YAML
Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando gcloud run services describe --format export
, che restituisce risultati puliti in formato YAML.
Puoi quindi modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare i campi solo come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'attributo
memory
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: memory: SIZE
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run
- IMAGE_URL con un riferimento all'immagine container,
ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- SIZE con le dimensioni della memoria desiderate.
Il formato è un numero fisso o in virgola mobile seguito da un'unità:
G
oM
corrispondenti rispettivamente a gigabyte o megabyte o usa l'equivalente potenza di due:Gi
oMi
, corrispondenti rispettivamente a gibibyte o mebibyte. - REVISION con un nuovo nome di revisione oppure eliminala (se presente). Se specifichi un nuovo nome, la revisione deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Contiene solo lettere minuscole, numeri e
-
- Non termina con
-
- Non supera i 63 caratteri
- Inizia con
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsa google_cloud_run_v2_service
nella tua configurazione Terraform, in template.containers.resources.limits
. Sostituisci 512Mi
con il limite di memoria desiderato per il servizio.
Ottimizza la memoria per i servizi
Per un servizio Cloud Run, puoi determinare il requisito di picco di memoria per un servizio utilizzando quanto segue: (memoria permanente) + (memoria per richiesta) * (contemporaneità dei servizi)
Di conseguenza,
Se aumenti la contemporaneità del tuo servizio, devi anche aumentare il limite di memoria per tenere conto del picco di utilizzo.
Se riduci la contemporaneità del tuo servizio, valuta la possibilità di ridurre il limite di memoria per risparmiare sui costi di utilizzo della memoria.
Per ulteriori indicazioni su come ridurre al minimo l'utilizzo della memoria per richiesta, leggi i Suggerimenti per lo sviluppo sulle variabili globali.
Visualizza le impostazioni del limite di memoria
Per visualizzare le impostazioni attuali dei limiti di memoria per il tuo servizio Cloud Run:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione del limite di memoria è elencata nella scheda Contenitore.
Riga di comando
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua l'impostazione del limite di memoria nella configurazione restituita.