Configura i limiti di memoria per i pool di worker

Puoi scegliere la quantità di memoria da fornire per il pool di worker Cloud Run. Questa pagina descrive come specificare la quantità di memoria disponibile per il pool di worker.

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 pool di worker, perché l'eseguibile deve essere caricato in memoria.
  • Allocare memoria nel processo del pool di worker.
  • 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 limiti di memoria sui pool di worker Cloud Run. Per impostazione predefinita, la memoria allocata a ogni pool di worker è di 512 MiB.

Memoria richiesta quando si imposta un valore della CPU

Quando imposti un valore della CPU, è necessaria la seguente memoria:

CPU Memoria richiesta
1 vCPU Da 128 MiB a 4 GiB
2 vCPU Da 128 MiB 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).

Puoi applicare un limite massimo di memoria utilizzando policy dell'organizzazione personalizzate.

Memoria minima

L'impostazione minima della memoria è di 512 MiB.

Considerazioni sui costi

Il costo del pool di worker 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:

  1. Stabilisci una configurazione di base iniziale.
  2. Monitora le metriche di utilizzo della memoria in Cloud Monitoring durante il test del sistema sotto carico.
  3. 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 dei pool di worker Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

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 pool di worker Cloud Run interagisce con Google Cloud API, 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.

Puoi impostare i limiti di memoria per un pool di worker Cloud Run utilizzando la Google Cloud console, Google Cloud CLI, YAML o Terraform:

Console

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

    Vai a Cloud Run

  2. Seleziona Pool di worker dal menu e fai clic su Esegui il deployment del container per configurare un nuovo pool di worker. Se stai configurando un pool di worker esistente, fai clic sul pool di worker, quindi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo pool di worker, compila la pagina iniziale del pool di worker, quindi fai clic su Container, volumi, Networking, sicurezza per espandere la pagina di configurazione dei pool di worker.

  4. Fai clic sulla scheda Container.

    immagine

    • Seleziona le dimensioni della memoria dall'elenco Memoria.
  5. Fai clic su Crea o Esegui il deployment.

gcloud

Puoi aggiornare l'allocazione della memoria di un determinato pool di worker utilizzando il seguente comando:

gcloud beta run worker-pools update WORKER_POOL --memory SIZE

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker
  • SIZE: le dimensioni della memoria dalla tabella CPU e memoria. Il formato per le dimensioni è un numero a virgola fissa o mobile seguito da un'unità: G o M corrispondente rispettivamente a gigabyte o megabyte, oppure utilizza gli equivalenti di potenza di due: Gi o Mi corrispondente rispettivamente a gibibyte o mebibyte.

Puoi anche impostare i limiti di memoria durante il deployment utilizzando il comando:

gcloud beta run worker-pools deploy --image IMAGE_URL --memory SIZE

Sostituisci quanto segue:

  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • SIZE: le dimensioni della memoria dalla tabella CPU e memoria. Il formato per le dimensioni è un numero a virgola fissa o mobile seguito da un'unità: G o M corrispondente rispettivamente a gigabyte o megabyte oppure utilizza gli equivalenti di potenza di due: Gi o Mi corrispondente rispettivamente a gibibyte o mebibyte.

YAML

  1. Se stai creando un nuovo pool di worker, salta questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. L'esempio seguente contiene la configurazione YAML:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            resources:
              limits:
                memory: SIZE

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del pool di worker Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
    • SIZE: le dimensioni della memoria scelte. Il formato è un numero a virgola fissa o mobile seguito da un'unità: G o M corrispondente rispettivamente a gigabyte o megabyte, oppure utilizza gli equivalenti di potenza di due: Gi o Mi corrispondente rispettivamente a gibibyte o mebibyte.
  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud beta run worker-pools replace workerpool.yaml

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      resources {
        limits = {
          memory = "SIZE"
        }
      }
    }
  }
}

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker.
  • REGION: la Google Cloud regione. Ad esempio, europe-west1.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • SIZE: le dimensioni della memoria dalla tabella CPU e memoria. Il formato per le dimensioni è un numero a virgola fissa o mobile seguito da un'unità: G o M corrispondente rispettivamente a gigabyte o megabyte, oppure utilizza gli equivalenti di potenza di due: Gi o Mi corrispondente rispettivamente a gibibyte o mebibyte.

Visualizzare la configurazione della memoria per il pool di worker

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

    Vai a Cloud Run

  2. Fai clic su Pool di worker per visualizzare l'elenco dei pool di worker di cui è stato eseguito il deployment.

  3. Fai clic sul pool di worker che vuoi esaminare per visualizzare il riquadro dei dettagli.

  4. Fai clic sulla scheda Container per visualizzare la configurazione della memoria del pool di worker per ogni container.