Puoi scegliere la quantità di memoria da fornire per il tuo servizio Cloud Run. Questa pagina descrive come specificare la quantità di memoria disponibile per il tuo servizio.
Informazioni sulla memoria utilizzata
Le istanze Cloud Run che superano il limite di memoria consentito vengono terminate.
La memoria disponibile per l'istanza deve essere sufficiente per:
- Eseguire l'eseguibile del servizio, perché l'eseguibile deve essere caricato in memoria.
- Allocare la memoria nel processo del servizio.
- Scrivere file nel file system.
Le dimensioni dell'immagine container di cui è stato eseguito il deployment non influiscono sulla memoria disponibile per l'istanza.
Impostare e aggiornare i limiti di memoria
Puoi impostare i limiti di memoria sui servizi Cloud Run. Per impostazione predefinita, la memoria allocata a ogni istanza di una revisione è di 512 MiB e la memoria allocata per una funzione è di 256 MiB.
Memoria richiesta quando si imposta un valore della CPU
Quando imposti un valore della CPU, è necessaria la seguente memoria:
| CPU | Memoria richiesta |
|---|---|
| 0,08 vCPU | Fino a 512 MiB |
| 0,5 vCPU | Fino a 1 GiB |
| 1 vCPU | Fino a 4 GiB |
| 2 vCPU | Fino a 8 GiB |
| 4 vCPU | Da 2 a 16 GiB |
| 6 vCPU | Da 4 a 24 GiB |
| 8 vCPU | Da 4 a 32 GiB |
Quantità massima di memoria
La quantità massima di memoria che puoi configurare è di 32 gibibyte (32 Gi).
Memoria minima
L'impostazione della memoria minima varia a seconda che tu utilizzi l'ambiente di esecuzione di prima o seconda generazione:
- 128 MiB per la prima generazione
- 512 MiB per la seconda generazione
Considerazioni sui costi
Il costo del tuo servizio Cloud Run è influenzato, tra gli altri fattori, dalla configurazione della memoria e dalla durata di attività della risorsa. Il provisioning eccessivo delle risorse può aumentare i costi. Per determinare la configurazione della memoria più adatta alla tua risorsa:
- Stabilisci una configurazione di base iniziale.
- Monitora le metriche di utilizzo della memoria in Cloud Monitoring durante il test del sistema sotto carico.
- Modifica la configurazione in base alle esigenze.
Se l'utilizzo della memoria è costantemente basso, valuta la possibilità di ridurre la memoria allocata. Se la latenza è elevata e l'utilizzo della memoria è vicino al 100%, valuta la possibilità di aumentare la memoria allocata. Se riscontri errori di memoria insufficiente (OOM), devi aumentare la memoria allocata o modificare l'applicazione per evitare perdite di memoria e utilizzare meno memoria. Consulta la dashboard di Cloud Monitoring per comprendere meglio l'utilizzo della memoria.
Per ulteriori informazioni, consulta i prezzi di Cloud Run o stima i costi con il calcolatore prezzi.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Developer (
roles/run.developer) sul servizio Cloud Run - Utente account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Se esegui il deployment di un servizio o di una funzione dal codice sorgente, devi disporre anche di altri ruoli concessi nel tuo progetto e nel account di servizio Cloud Build.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Configurare i limiti di memoria
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.
Per i servizi Cloud Run, puoi impostare i limiti di memoria utilizzando la Google Cloud console, la riga di comando gcloud o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella Google Cloud console, vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio, quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Container.
- Seleziona le dimensioni della memoria desiderate dall'elenco a discesa Memoria.
Fai clic su Crea o Esegui il deployment.
gcloud
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 le dimensioni della memoria desiderate. Il formato per le dimensioni è un numero a virgola fissa o mobile seguito
da un'unità: G o M corrispondenti rispettivamente a gigabyte o megabyte,
oppure utilizza gli equivalenti di potenza di due: 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 quanto segue:
- IMAGE_URL: un riferimento all'immagine container, ad
esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - SIZE: i valori descritti in precedenza.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
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 quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad
esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - SIZE: le dimensioni della memoria necessarie.
Il formato è un numero a virgola fissa o mobile seguito da un'unità:
GoMcorrispondenti rispettivamente a gigabyte o megabyte, oppure utilizza gli equivalenti di potenza di due:GioMicorrispondenti rispettivamente a gibibyte o mebibyte. - REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
- Inizia con
SERVICE- - Contiene solo lettere minuscole, numeri e
- - Non termina con un
- - Non supera i 63 caratteri
- Inizia con
Crea o aggiorna il servizio 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 unagoogle_cloud_run_v2_service
risorsa nella configurazione Terraform:In template.containers.resources.limits, sostituisci 512Mi con il limite di memoria necessario per il tuo servizio.
Scrivi
Per specificare suggerimenti per CPU e memoria nel file compose.yaml, aggiungi l'attributo cpus alla definizione del servizio. Cloud Run
alloca automaticamente la memoria richiesta quando imposti un valore della CPU.
services: web: image: IMAGE cpus: CPU_VALUE
Sostituisci quanto segue:
- IMAGE: l'URL dell'immagine container.
- CPU_VALUE: il limite di CPU necessario, ad esempio
2. Questo valore determina la memoria richiesta.
Esegui il deployment dei servizi
Per eseguire il deployment dei servizi, esegui il comando
gcloud run compose up:gcloud run compose up compose.yamlRispondi
ya eventuali richieste per installare i componenti richiesti o per attivare le API.(Facoltativo) Rendi pubblico il servizio se vuoi consentire l'accesso non autenticato al servizio.
Dopo il deployment, viene visualizzato l'URL del servizio Cloud Run. Copia questo URL e incollalo nel browser per visualizzare il container in esecuzione. Puoi disattivare l'autenticazione predefinita dalla Google Cloud console.
Ottimizzare la memoria per i servizi
Per un servizio Cloud Run, puoi determinare il requisito di memoria di picco per un servizio utilizzando la seguente formula: (memoria fissa) + (memoria per richiesta) * (concorrenza del servizio)
Di conseguenza,
Se aumenti la concorrenza del servizio, devi anche aumentare il limite di memoria per tenere conto dell'utilizzo di picco.
Se riduci la concorrenza del servizio, valuta la possibilità di ridurre il limite di memoria per risparmiare sui costi della memoria utilizzata.
Per ulteriori indicazioni su come ridurre al minimo la memoria utilizzata per richiesta, consulta Suggerimenti per lo sviluppo sulle variabili globali.
Visualizzare le impostazioni del limite di memoria
Per visualizzare le impostazioni del limite di memoria corrente per il tuo servizio Cloud Run:
Console
Nella Google Cloud console, vai alla pagina Servizi di 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 Container.
gcloud
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua l'impostazione del limite di memoria nella configurazione restituita.