In questa pagina viene descritto come impostare i limiti di memoria.
Informazioni sull'utilizzo della memoria
Le istanze Cloud Run che superano il limite consentito di memoria vengono terminate.
Quanto segue viene conteggiato ai fini della memoria disponibile dell'istanza:
- Eseguire l'eseguibile dell'applicazione (poiché questo deve essere caricato in memoria).
- allocazione della memoria durante il processo di candidatura
- scrittura di file nel filesystem
Le dimensioni dell'immagine container di cui è stato eseguito il deployment non vengono conteggiate nella memoria disponibile.
Impostare e aggiornare i limiti di memoria
Puoi impostare limiti di memoria per i servizi e i job Cloud Run. Per impostazione predefinita, la memoria allocata a ogni istanza di una revisione o di un job è di 512 MiB.
CPU minime richieste
Quando imposti un limite di memoria, sono richiesti i seguenti limiti minimi di CPU:
Memoria | CPU minime 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 minima della memoria varia a seconda che tu utilizzi o meno l'ambiente di esecuzione di prima o seconda generazione:
- 128 MiB per la prima generazione
- 512 MiB per la seconda generazione
Per i servizi Cloud Run
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Per i servizi Cloud Run, puoi impostare 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
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 una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni del servizio iniziale come preferisci, quindi fai clic su Container, Networking, Security per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Seleziona la dimensione della memoria desiderata 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 il seguente comando:
gcloud run services update SERVICE --memory SIZE
Sostituisci SERVICE con il nome del tuo servizio e SIZE con la dimensione della memoria desiderata. Il formato delle dimensioni è un numero fisso o mobile, seguito da un'unità: G
o M
, corrispondente rispettivamente a gigabyte o megabyte; in alternativa, utilizza la potenza di due equivalenti: Gi
o Mi
, corrispondenti rispettivamente a gibibyte o mebibyte.
Puoi anche impostare 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
. Quando utilizzi Artifact Registry, l'URL ha il formato:REGION-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 genera
risultati puliti in formato YAML.
Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace
.
Assicurati di modificare solo i campi 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
. Quando utilizzi Artifact Registry, l'URL ha il formato:REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SIZE con la dimensione della memoria desiderata.
Il formato è un numero con virgola fissa o mobile seguito da un'unità:
G
oM
corrispondente a gigabyte o megabyte, rispettivamente, oppure utilizza la potenza di due equivalenti:Gi
oMi
corrispondenti rispettivamente a gibibyte o mebibyte. - REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome della revisione, deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Contiene solo lettere minuscole, numeri e
-
- Non termina con
-
- Non superare i 63 caratteri.
- Inizia con
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsa google_cloud_run_service
nella configurazione di Terraform, in template.spec.containers
. Sostituisci 512Mi
con il limite di memoria desiderato del tuo servizio.
Per job Cloud Run
Devi specificare un minimo di 512 Mi per un job Cloud Run. Per specificare la memoria per un job Cloud Run:
Console
Se stai configurando un nuovo job, fai clic sulla scheda Job e compila la pagina delle impostazioni del job iniziale come preferisci. Se stai configurando un job esistente, fai clic sul job e poi su Modifica.
Fai clic su Container, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Contenitore.
- Seleziona la dimensione della memoria desiderata dall'elenco a discesa Memoria.
Fai clic su Crea o Aggiorna.
Riga di comando
Per impostare i limiti di memoria durante la creazione di un job:
gcloud run jobs create JOB_NAME --image IMAGE_URL --memory SIZE
Sostituisci
- JOB_NAME con il nome del job.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
. - SIZE con la dimensione della memoria desiderata. Il formato delle dimensioni è un numero fisso o mobile, seguito da un'unità:
G
oM
, rispettivamente, corrispondenti a gigabyte o megabyte; in alternativa, utilizza la potenza di due equivalenti:Gi
oMi
, corrispondenti rispettivamente a gibibyte o mebibyte.
Per impostare limiti di memoria durante l'aggiornamento di un job:
gcloud run jobs update JOB_NAME --memory SIZE
YAML
Scarica e visualizza la configurazione del job esistente utilizzando il comando gcloud run jobs describe --format export
, che genera risultati puliti in formato YAML. Successivamente, modifica i campi descritti di seguito e carica il file YAML modificato utilizzando il comando gcloud run jobs replace
.
Assicurati di modificare solo i campi come documentato.
Per visualizzare e scaricare la configurazione:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Aggiorna l'attributo
memory
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE resources: limits: memory: SIZE
Sostituisci SIZE con la dimensione della memoria desiderata, specificando un minimo di 512 Mi. Il formato è un numero a virgola fissa o mobile seguito da un'unità:
G
oM
corrispondente a gigabyte o megabyte, rispettivamente, oppure utilizza la potenza di due equivalenti:Gi
oMi
corrispondenti rispettivamente a gibibyte o mebibyte.Puoi anche specificare altre configurazioni come variabili di ambiente o limiti di memoria.
Aggiorna la configurazione del job esistente:
gcloud run jobs replace job.yaml
Ottimizza la memoria per i servizi
Per un servizio Cloud Run, puoi determinare il requisito di memoria di picco per un servizio utilizzando quanto segue: (Memoria permanente) + (Memoria per richiesta) * (Contemporaneità di servizio)
Di conseguenza,
Se aumenti la contemporaneità del tuo servizio, devi anche aumentare il limite di memoria per tenere conto dell'utilizzo di picco.
Se riduci la contemporaneità del tuo servizio, potresti ridurre il limite di memoria per risparmiare sui costi di utilizzo della memoria.
Per ulteriori indicazioni su come ridurre al minimo l'utilizzo di memoria per richiesta, consulta i suggerimenti per lo sviluppo sulle variabili globali.
Visualizza le impostazioni dei limiti di memoria
Per visualizzare le impostazioni attuali del limite di memoria per il tuo servizio Cloud Run:
Console
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli del servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione del limite di memoria è indicata nella scheda Container.
Riga di comando
Utilizza il comando seguente:
gcloud run services describe SERVICE
Individua l'impostazione del limite di memoria nella configurazione restituita.
Per visualizzare le impostazioni attuali del limite di memoria per il tuo job Cloud Run:
Console
Fai clic sul job che ti interessa per aprire la pagina Dettagli job.
Fai clic sulla scheda Configuration (Configurazione).
Individua l'impostazione del limite di memoria nei dettagli di configurazione.
Riga di comando
Utilizza il comando seguente:
gcloud run jobs describe JOB_NAME
Individua l'impostazione del limite di memoria nella configurazione restituita.