Configura limiti di memoria

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

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. 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.

  3. 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.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Seleziona le dimensioni della memoria che preferisci dall'elenco a discesa Memoria.
  5. 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 forma LOCATION-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.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 forma LOCATION-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 o M corrispondenti rispettivamente a gigabyte o megabyte o usa l'equivalente potenza di due: Gi o Mi, 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
  3. 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.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-memory-limits"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      resources {
        limits = {
          # Memory usage limit (per container)
          memory = "512Mi"
        }
      }
    }
  }
}

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

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione del limite di memoria è elencata nella scheda Contenitore.

Riga di comando

  1. Utilizza il seguente comando:

    gcloud run services describe SERVICE
  2. Individua l'impostazione del limite di memoria nella configurazione restituita.