Allocation du processeur (services)

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Par défaut, l'allocation de processeur aux instances de conteneur Cloud Run ne se fait que lors du traitement des requêtes et du démarrage et de l'arrêt des conteneurs (reportez-vous au cycle de vie de l'instance de conteneur). Vous pouvez modifier ce comportement de sorte que le processeur soit toujours alloué et disponible même en l'absence de requêtes entrantes. Il peut être utile de définir l'allocation systématique du processeur pour exécuter des tâches de courte durée en arrière-plan et d'autres tâches de traitement asynchrones.

Illustration des modes d'allocation de processeurs

Notez que, même si le processeur est toujours alloué, l'autoscaling Cloud Run est toujours appliqué et peut mettre fin aux instances de conteneur si elles ne sont pas nécessaires pour gérer le trafic entrant. Une instance ne reste jamais inactive plus de 15 minutes après le traitement d'une requête, sauf si elle reste active à l'aide d'un nombre minimal d'instances.

Combiner le processeur toujours alloué avec un certain nombre minimal d'instances résulte en l'exécution d'un certain nombre d'instances de conteneur avec un accès complet aux ressources de processeur, ce qui permet des cas d'utilisation du traitement en arrière-plan tels queExtraire des messages Pub/Sub.

Impact sur les tarifs

Si vous choisissez d'allouer le processeur uniquement lors du traitement des requêtes, vous êtes facturé par requête et uniquement lorsque l'instance de conteneur traite une requête. Si vous choisissez le paramètre CPU toujours alloué, le cycle de vie complet de l'instance de conteneur vous est facturé. Pour en savoir plus, consultez les grilles tarifaires de Cloud Run.

Choisir la bonne allocation de processeurs

Le choix de l'allocation de processeurs adaptée à votre cas d'utilisation dépend de plusieurs facteurs, tels que les modèles de trafic, l'exécution en arrière-plan et les coûts, chacun d'entre eux étant décrit dans les sections suivantes.

Remarques concernant les modèles de trafic

  • L'utilisation d'un processeur uniquement lors du traitement des requêtes est recommandée lorsque le trafic entrant est sporadique, intensif ou irrégulier.
  • L'utilisation d'un processeur toujours alloué est recommandée lorsque le trafic entrant est constant et varie lentement.

Considérations sur l'exécution en arrière-plan

La sélection de Processeur toujours alloué vous permet d'exécuter des tâches de courte durée en arrière-plan et d'effectuer d'autres tâches de traitement asynchrone après avoir renvoyé des réponses. Exemple :

  • Exploiter des agents de surveillance tels qu'OpenTelemetry, qui peuvent supposer qu'ils peuvent s'exécuter en arrière-plan
  • Utiliser les goroutines Go, asynchrones Node.js, les threads Java et les coroutines Kotlin
  • Utilisation de frameworks d'application qui reposent sur des fonctionnalités de planification et d'arrière-plan intégrées

Les instances inactives, y compris celles qui sont gardées en attente en utilisant un nombre minimal d'instances, peuvent être arrêtées à tout moment. Si vous devez terminer des tâches en cours avant l'arrêt du conteneur, vous pouvez intercepter le signal SIGTERM pour accorder un délai de grâce de 10 secondes à une instance de conteneur avant son arrêt.

Envisagez d'utiliser Cloud Tasks pour exécuter des tâches asynchrones. Cloud Tasks relance automatiquement les tâches ayant échoué et accepte des temps d'exécution allant jusqu'à 30 minutes.

Considérations liées au coût

Si vous utilisez actuellement le processeur uniquement alloué pendant le traitement des requêtes, le processeur toujours alloué est probablement plus économique dans les cas suivants :

  • Votre service Cloud Run traite un grand nombre de requêtes en cours à un rythme relativement régulier.
  • Vous ne voyez pas beaucoup d'instances de conteneur "inactives" lorsque vous consultez la métrique de comptage d'instances de conteneur.

Vous pouvez utiliser le simulateur de coût pour estimer les différences de coût.

Définir et modifier l'allocation de processeurs

Toute modification de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Si vous choisissez l'option de processeur toujours alloué, vous devez spécifier au moins 512 Mio de mémoire.

Par défaut, le processeur n'est alloué que pendant le traitement des requêtes pour chaque instance de conteneur. Vous pouvez modifier cette valeur par défaut à l'aide de la console Google Cloud, de la ligne de commande gcloud ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, remplissez la page des paramètres initiaux du service selon vos besoins, puis cliquez sur Conteneur, connexions, sécurité pour développer la page de configuration du service.

  4. Cliquez sur l'onglet Conteneur.

    image

  5. Sélectionnez l'allocation de processeur souhaitée sous CPU allocation and pricing (Allocation du processeur et tarification). Sélectionnez CPU is only allocated during request processing (Le processeur n'est alloué que lors du traitement des requêtes) pour que vos instances ne se voient allouées le processeur que lorsqu'elles reçoivent des requêtes. Sélectionnez CPU is always allocated (Le processeur est toujours alloué) pour allouer le processeur pendant toute la durée de vie des instances de conteneur.

  6. Cliquez sur Créer ou Déployer.

Command line

Vous pouvez mettre à jour l'allocation du processeur. Pour configurer les processeurs sur une allocation systématique pour un service donné :

gcloud run services update SERVICE --no-cpu-throttling 

Remplacez SERVICE par le nom du service.

Pour définir l'allocation de processeurs uniquement pendant le traitement des requêtes, procédez comme suit :

gcloud run services update SERVICE --cpu-throttling 

Vous pouvez également définir l'allocation du processeur pendant le déploiement. Pour configurer les processeurs sur une allocation systématique :

gcloud run deploy --image IMAGE_URL --no-cpu-throttling

Pour définir l'allocation de processeurs uniquement pendant le traitement des requêtes, procédez comme suit :

gcloud run deploy --image IMAGE_URL --cpu-throttling

Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour l'attribut cpu :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/cpu-throttling: 'BOOLEAN'
          name: REVISION

    Remplacez

    • SERVICE par le nom de votre service Cloud Run
    • BOOLEAN par true pour définir l'allocation du processeur uniquement lors du traitement des requêtes ou par false pour définir le processeur à toujours alloué.
    • REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
      • Commencer par SERVICE-
      • Ne contenir que des lettres minuscules, des chiffres et -
      • Ne pas se terminer par -
      • Ne pas dépasser 63 caractères
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Afficher les paramètres d'allocation de processeur

Pour afficher les paramètres actuels d'allocation de processeur pour votre service Cloud Run, procédez comme suit :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre d'allocation de processeurs est répertorié sous l'onglet Conteneur.

Command line

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre d'allocation de processeurs dans la configuration renvoyée.