Configurer les limites de mémoire pour les jobs

Vous pouvez choisir la quantité de mémoire à fournir pour votre job Cloud Run. Cette page explique comment spécifier la quantité de mémoire disponible pour votre job.

Comprendre l'utilisation de la mémoire

Les instances Cloud Run qui dépassent la limite de mémoire autorisée sont arrêtées.

La mémoire disponible pour votre instance doit être suffisante pour :

  • Exécution de l'exécutable du job, car l'exécutable doit être chargé en mémoire
  • Allocation de mémoire dans votre processus de job
  • Écriture des fichiers dans le système de fichiers

La taille de l'image de conteneur déployée n'affecte pas la mémoire disponible pour l'instance.

Définir et mettre à jour des limites de mémoire

Vous pouvez définir des limites de mémoire sur les jobs Cloud Run. Par défaut, la mémoire allouée à chaque job est de 512 Mio, et celle allouée à une fonction est de 256 Mio.

Mémoire requise lorsque vous définissez une valeur de processeur

Lorsque vous définissez une valeur de processeur, la mémoire suivante est requise :

Processeurs Mémoire requise
1 vCPU 512 Mio à 4 Gio
2 vCPU 512 Mio à 8 Gio
4 vCPU 2 à 16 Gio
6 vCPU 4 à 24 Gio
8 vCPU 4 à 32 Gio

Quantité maximale de mémoire

La quantité maximale de mémoire que vous pouvez configurer est de 32 gibioctets (32 Gi).

Mémoire minimale

Le paramètre de mémoire minimal est de 512 Mio.

Considérations liées au coût

Le coût de votre job Cloud Run dépend, entre autres, de sa configuration de mémoire et de la durée d'activité de votre ressource. Le surdimensionnement de vos ressources peut augmenter vos coûts. Pour déterminer la configuration de mémoire la mieux adaptée à votre ressource :

  1. Établissez une configuration de référence initiale.
  2. Surveillez vos métriques d'utilisation de la mémoire dans Cloud Monitoring pendant que vous testez le système sous charge.
  3. Ajustez votre configuration si nécessaire.

Si l'utilisation de la mémoire est toujours faible, envisagez de réduire la mémoire allouée. Si la latence est élevée et que l'utilisation de la mémoire est proche de 100%, envisagez d'augmenter la mémoire allouée. Si vous rencontrez des erreurs de mémoire insuffisante (OOM), vous devez augmenter la mémoire allouée ou modifier votre application pour éviter les fuites de mémoire et utiliser moins de mémoire. Consultez le tableau de bord Cloud Monitoring pour mieux comprendre votre utilisation de la mémoire.

Pour en savoir plus, consultez les tarifs de Cloud Run ou estimez les coûts avec le simulateur de coût.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer des jobs Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre job Cloud Run communique avec des APIGoogle Cloud , telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.

Configurer les limites de mémoire

Vous devez spécifier un minimum de 512 Mi pour une tâche Cloud Run.

Vous pouvez configurer des limites de mémoire pour un job Cloud Run à l'aide de la consoleGoogle Cloud , de la gcloud CLI, de YAML ou de Terraform :

Console

  1. Dans la console Google Cloud , accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Sélectionnez Jobs dans le menu de navigation Cloud Run :

    1. Si vous créez un job, cliquez sur Déployer un conteneur pour remplir la page des paramètres initiaux du job.

    2. Si vous configurez un job existant, sélectionnez-le, puis cliquez sur Afficher et modifier la configuration du job.

  3. Cliquez sur Conteneurs, Connexions, Sécurité pour développer la page des propriétés du job.

  4. Dans l'onglet Conteneurs, sélectionnez la taille de mémoire dans la liste Mémoire.

  5. Cliquez sur Créer ou Mettre à jour.

gcloud

  • Pour définir des limites de mémoire lorsque vous créez un job, exécutez la commande suivante :

    gcloud run jobs create JOB --image IMAGE_URL --memory SIZE

    Remplacez les éléments suivants :

    • JOB par le nom de votre job Cloud Run
    • IMAGE_URL : référence à l'image de conteneur (par exemple, us-docker.pkg.dev/cloudrun/container/job:latest).
    • SIZE : taille de la mémoire. Le format de la taille est un nombre fixe ou à virgule flottante suivi d'une unité : G ou M correspondant respectivement au gigaoctet ou au mégaoctet, ou qui utilise des équivalents en puissance de deux : Gi ou Mi correspondant respectivement au gibioctet ou au mébioctet.
  • Pour définir des limites de mémoire lorsque vous mettez à jour une tâche existante, exécutez la commande suivante :

    gcloud run jobs update JOB --memory SIZE

YAML

  1. Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :

    gcloud run jobs describe JOB --format export > job.yaml
  2. Mettez à jour l'attribut memory :

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                resources:
                  limits:
                    memory: SIZE

    Remplacez les éléments suivants :

    • JOB par le nom de votre job Cloud Run
    • IMAGE_URL : référence à l'image de conteneur (par exemple, us-docker.pkg.dev/cloudrun/container/job:latest).
    • SIZE : taille de la mémoire, avec une valeur minimale de 512 Mi. Le format est un nombre fixe ou à virgule flottante suivi d'une unité :G ouM correspondant au gigaoctet ou au mégaoctet, respectivement, ou qui utilise des équivalents en puissance de deux : Gi ou Mi correspondant respectivement à un gibioctet ou à un mébioctet.

    Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.

  3. Créez ou mettez à jour le job à l'aide de la commande suivante :

    gcloud run jobs replace job.yaml

    Par défaut, la commande gcloud run jobs replace utilise le fichier job.yaml s'il est présent.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

Ajoutez les éléments suivants à une ressource google_cloud_run_v2_job dans votre configuration Terraform :
resource "google_cloud_run_v2_job" "default" {
  name     = "JOB"
  location = "REGION"
  deletion_protection = false

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        resources {
          limits = {
            cpu    = "2"
            memory = "SIZE"
          }
        }
      }
    }
  }
}

Remplacez les éléments suivants :

  • JOB par le nom de votre job Cloud Run
  • REGION : région Google Cloud . Exemple : europe-west1.
  • SIZE : taille de mémoire requise, avec un minimum de 512 Mio. Le format est un nombre fixe ou à virgule flottante suivi d'une unité :G ouM correspondant au gigaoctet ou au mégaoctet, respectivement, ou qui utilise des équivalents en puissance de deux : Gi ou Mi correspondant respectivement à un gibioctet ou à un mébioctet.

Afficher les paramètres de limite de mémoire

Pour afficher les paramètres actuels de limite de mémoire de votre job Cloud Run, utilisez la console Google Cloud ou la Google Cloud CLI :

Console

  1. Dans la console Google Cloud , accédez à la page des jobs Cloud Run :

    Accéder aux jobs Cloud Run

  2. Cliquez sur le job pour ouvrir la page Informations sur le job.

  3. Cliquez sur Afficher et modifier la configuration du job.

  4. Localisez le paramètre de limite de mémoire dans les détails de la configuration.

gcloud

  1. Exécutez la commande suivante :

    gcloud run jobs describe JOB
  2. Recherchez le paramètre de limite de mémoire dans la configuration renvoyée.