Configura i limiti di memoria

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

  1. 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 una nuova revisione.

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

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Seleziona la dimensione della memoria desiderata 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 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.

  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. 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 o M corrispondente a gigabyte o megabyte, rispettivamente, oppure utilizza la potenza di due equivalenti: Gi o Mi 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.
  3. 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.

resources {
  limits = {
    # CPU usage limit
    # https://cloud.google.com/run/docs/configuring/cpu
    cpu = "1000m" # 1 vCPU

    # Memory usage limit (per container)
    # https://cloud.google.com/run/docs/configuring/memory-limits
    memory = "512Mi"
  }
}

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

  1. Vai a Cloud Run

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

  3. Fai clic su Container, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Seleziona la dimensione della memoria desiderata dall'elenco a discesa Memoria.
  5. Fai clic su Crea o Aggiorna.

Riga di comando

  1. 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 o M, rispettivamente, corrispondenti a gigabyte o megabyte; in alternativa, utilizza la potenza di due equivalenti: Gi o Mi, corrispondenti rispettivamente a gibibyte o mebibyte.
  2. 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.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 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 o M corrispondente a gigabyte o megabyte, rispettivamente, oppure utilizza la potenza di due equivalenti: Gi o Mi corrispondenti rispettivamente a gibibyte o mebibyte.

    Puoi anche specificare altre configurazioni come variabili di ambiente o limiti di memoria.

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

  1. Vai a Cloud Run

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

  3. Fai clic sulla scheda Revisioni.

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

Riga di comando

  1. Utilizza il comando seguente:

    gcloud run services describe SERVICE
  2. 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

  1. Vai ai job Cloud Run

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

  3. Fai clic sulla scheda Configuration (Configurazione).

  4. Individua l'impostazione del limite di memoria nei dettagli di configurazione.

Riga di comando

  1. Utilizza il comando seguente:

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