Afficher la disponibilité des VM Spot

Ce document explique comment afficher la disponibilité en temps réel et le temps d'activité attendu des VM Spot.

Avant de créer des VM Spot, vous pouvez consulter la disponibilité en temps réel et le temps d'activité attendu pour plusieurs types de machines et emplacements à l'aide de l'API advice.capacity. Ces informations vous aident à effectuer les opérations suivantes :

  • Réduisez les erreurs de disponibilité des ressources. Lorsque vous voyez quels types de machines, régions ou zones disposent de capacité disponible, vous pouvez spécifier ces configurations lorsque vous créez des VM Spot. Cette action réduit le risque de rencontrer des erreurs de disponibilité des ressources.

  • Optimisez les charges de travail pour la préemption. En comparant le temps d'activité attendu pour différentes configurations et différents emplacements de machines, vous pouvez choisir les configurations qui conviennent le mieux à vos charges de travail. En vérifiant ces facteurs, vous pouvez concevoir et organiser vos VM Spot de sorte que la préemption ne perturbe pas vos charges de travail.

Pour savoir comment comparer la stabilité et le coût de différents types de machines et emplacements, consultez plutôt Afficher le taux de préemption et les tarifs des VM Spot.

Limites

Lorsque vous envoyez une requête à l'API advice.capacity, vous ne pouvez pas consulter la disponibilité des TPU.

Comprendre la disponibilité des ressources pour les VM Spot

Lorsque vous envoyez une requête à l'API advice.capacity, les métriques de recommandation suivantes s'affichent dans le résultat. Ces métriques sont basées sur le type de machine que vous souhaitez que vos VM Spot utilisent, la zone dans laquelle vous souhaitez créer des VM Spot, ainsi que la disponibilité en temps réel et les taux de préemption historiques de vos ressources demandées.

  • Score d'obtention : probabilité que votre demande de création de VM Spot avec le nombre de VM et la configuration de machine spécifiés aboutisse. Pour en savoir plus, consultez Score d'obtention pour les VM Spot.

  • Temps d'activité estimé : durée minimale pendant laquelle vous pouvez vous attendre à ce que la plupart de vos VM Spot s'exécutent avant que Compute Engine ne les préempte. Pour en savoir plus, consultez Temps d'activité estimé pour les VM Spot.

Score de disponibilité pour les VM Spot

Lorsque vous envoyez une requête à l'API advice.capacity, le score d'obtention (obtainability) dans le résultat indique la probabilité que vous puissiez créer le nombre de VM Spot spécifié dans une ou plusieurs zones. Compute Engine calcule ce score en fonction de la disponibilité en temps réel des ressources demandées et du taux de réussite des demandes de création récentes.

Le score d'obtention est compris entre 0.0 et 1.0. Il indique l'une des chances de succès suivantes :

  • Forte probabilité de succès (0.7 à 1.0) : vous avez de fortes chances de créer les VM Spot demandées.

  • Chances de succès moyennes (de 0.4 à 0.6) : vous avez une probabilité moyenne de créer les VM Spot demandées. Si vous créez des VM Spot de manière groupée ou dans un MIG avec une taille cible, vous n'obtiendrez peut-être qu'une partie des VM demandées.

  • Faibles chances de succès (0.0 à 0.3) : il est peu probable que vous puissiez créer les VM Spot demandées. Nous vous recommandons de vérifier la disponibilité des ressources dans un autre emplacement ou pour un autre type de machine, ou de créer des VM à l'aide d'un autre modèle de provisionnement.

Temps d'activité estimé pour les VM Spot

Lorsque vous envoyez une requête à l'API advice.capacity, le temps d'activité estimé (estimatedUptime) dans le résultat indique la durée minimale pendant laquelle la plupart des VM Spot du nombre spécifié devraient s'exécuter avant d'être préemptées. Compute Engine calcule ce temps d'activité en fonction des modèles d'utilisation historiques et actuels pour le type de machine et l'emplacement spécifiés.

Compute Engine peut définir la disponibilité estimée sur l'une des valeurs suivantes :

  • 60 minutes (3 600 secondes) : la plupart de vos VM Spot s'exécuteront probablement pendant une heure avant que Compute Engine ne les préempte. Créez des VM pour les charges de travail de longue durée qui peuvent tolérer des interruptions, comme les charges de travail par lot.

  • 10 minutes (600 secondes) : la plupart de vos VM Spot s'exécuteront probablement pendant 10 minutes avant que Compute Engine ne les préempte. Ne créez des VM que pour les tâches de courte durée ou pour les charges de travail tolérantes aux pannes qui enregistrent leur progression à intervalles réguliers.

  • 1 minute (60 secondes) : la plupart de vos VM Spot s'exécuteront probablement pendant une minute avant que Compute Engine ne les préempte. Nous vous recommandons d'effectuer l'une des actions suivantes :

    • Ne créez des VM que pour les tâches très courtes, les tests ou les charges de travail non critiques.

    • Vérifiez la disponibilité des ressources dans un autre emplacement ou pour un autre type de machine.

    • Créez des VM à l'aide d'un autre modèle de provisionnement.

Bonnes pratiques

Pour maximiser vos chances d'obtenir de la capacité après avoir utilisé l'API advice.capacity, nous vous recommandons de suivre les bonnes pratiques suivantes :

  • Comparer les résultats pour différents types de machines : si votre charge de travail est flexible, comparez les options avec un nombre différent de VM Spot ou de types de machines. Par exemple, vous pouvez comparer la sortie de 100 VM avec un type de machine n1-standard-2 et de 50 VM avec un type de machine n1-standard-4. Vous pouvez ensuite créer des VM Spot en utilisant la configuration qui équilibre le mieux la disponibilité et le temps d'activité estimé pour les besoins de votre charge de travail.

  • Comparer les résultats dans plusieurs emplacements : si votre charge de travail peut s'exécuter dans plusieurs régions ou zones, vérifiez la disponibilité dans chaque emplacement. Par exemple, si deux régions offrent le même temps d'activité estimé, créez des VM Spot dans la région avec le score de disponibilité le plus élevé.

  • Répartir les VM sur plusieurs zones : si vous spécifiez une forme de distribution cible de ANY ou BALANCED, l'API advice.capacity peut vous recommander de créer des VM Spot dans plusieurs zones. Par exemple, pour maximiser vos chances de créer 100 VM Spot, le résultat peut vous recommander de créer 90 VM dans une zone et 10 VM dans une autre.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour afficher la disponibilité des VM Spot, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de Compute (roles/compute.viewer) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour afficher la disponibilité des VM Spot. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour afficher la disponibilité des VM spot :

  • Pour afficher la disponibilité des VM Spot : compute.advice.capacity sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Afficher la disponibilité des VM Spot

Pour afficher la disponibilité des VM Spot, vous devez spécifier l'emplacement, la configuration de la machine et le nombre de VM que vous souhaitez créer. En fonction des résultats, vous pouvez créer les VM Spot ou afficher la disponibilité des ressources dans un autre emplacement ou pour une autre configuration de machine.

En fonction des exigences de votre charge de travail, tenez compte des points suivants :

Pour afficher la disponibilité des Spot VM, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Conseiller de capacité.

    Accéder au conseiller en capacité

  2. Dans le volet Filtres, procédez comme suit :

    1. Dans la section Emplacement, dans la liste Région, sélectionnez les régions dans lesquelles vous souhaitez afficher la disponibilité des VM spot.

    2. Dans la section Spécifications de la machine, spécifiez la configuration de la machine et le nombre de VM Spot dont vous souhaitez consulter la disponibilité :

      1. Dans la liste Famille de machines, sélectionnez une famille de machines.

      2. Dans la liste Série, sélectionnez jusqu'à trois séries de machines.

      3. Dans la liste Type de machine, sélectionnez jusqu'à cinq types de machines.

      4. Dans le champ Nombre de VM, saisissez le nombre de VM Spot.

    3. Cliquez sur  Rechercher.

gcloud

Pour afficher la disponibilité des VM Spot, utilisez la commande gcloud beta compute advice capacity :

gcloud beta compute advice capacity \
    --provisioning-model=SPOT \
    --instance-selection-machine-types=MACHINE_TYPES \
    --target-distribution-shape=TARGET_DISTRIBUTION_SHAPE \
    --size=SIZE \
    --region=REGION

Remplacez les éléments suivants :

  • MACHINE_TYPES : liste de types de machines pour lesquels vous souhaitez afficher la disponibilité, séparés par une virgule (par exemple, n2-standard-2,n2-standard-4). Vous pouvez spécifier jusqu'à cinq types de machines.

  • TARGET_DISTRIBUTION_SHAPE : répartition des ressources demandées. En fonction du type de charge de travail que vous souhaitez exécuter et des zones dans lesquelles vous souhaitez créer des VM, spécifiez l'une des valeurs suivantes :

    • ANY : vous souhaitez créer des VM Spot dans une ou plusieurs zones en fonction de la disponibilité. Spécifiez cette valeur pour les charges de travail par lot.

    • ANY_SINGLE_ZONE : vous souhaitez créer des VM Spot uniquement dans une seule zone en fonction de la disponibilité. Spécifiez cette valeur pour les charges de travail qui nécessitent une communication étendue entre les VM, telles que les charges de travail d'IA ou de calcul hautes performances (HPC).

    • BALANCED : vous souhaitez créer des VM Spot dans une ou plusieurs zones en fonction de la disponibilité, et que Compute Engine répartisse les VM aussi uniformément que possible entre les zones. Spécifiez cette valeur pour minimiser l'impact des défaillances zonales pour les charges de travail de diffusion ou par lot à disponibilité élevée.

  • SIZE : nombre de VM Spot que vous souhaitez créer.

  • REGION : région dans laquelle vous souhaitez afficher la disponibilité des VM Spot. Pour spécifier une liste de zones séparées par une virgule au lieu d'une région, remplacez l'indicateur --region par l'indicateur --zones.

Le résultat ressemble à ce qui suit :

recommendations:
- scores:
  obtainability: 0.9
  estimatedUptime: 600s
- shards:
  - instanceCount: 90
    machineType: n2-standard-2
    provisioningModel: SPOT
    zone: https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a
  - instanceCount: 10
    machineType: n2-standard-4
    provisioningModel: SPOT
    zone: https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-c

REST

Pour afficher la disponibilité des VM Spot, envoyez une requête POST à la méthode advice.capacity bêta.

Par exemple, pour afficher la disponibilité de deux types de machines dans une région, envoyez une requête comme suit. Vous pouvez consulter la disponibilité de cinq types de machines maximum par requête.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacity

{
  "instanceProperties": {
    "scheduling": {
      "provisioningModel": "SPOT"
    }
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "MACHINE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1"
        ]
      },
      "MACHINE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_2"
        ]
      }
    }
  },
  "distributionPolicy": {
    "targetShape": "TARGET_DISTRIBUTION_SHAPE"
  },
  "size": SIZE
}

Remplacez les éléments suivants :

  • PROJECT_ID : par l'ID du projet.

  • REGION : région dans laquelle vous souhaitez afficher la disponibilité des VM Spot.

  • MACHINE_SELECTION_1 et MACHINE_SELECTION_2 : nom de la sélection du type de machine. Par exemple, spécifiez selection-1 et selection-2 respectivement.

  • MACHINE_TYPE_1 et MACHINE_TYPE_2 : types de machines pour lesquels vous souhaitez afficher la disponibilité. En fonction du type de machine, notez les points suivants :

    • Types de machines N1 : pour associer des GPU à vos VM N1 Spot, incluez le champ guestAccelerators dans les champs MACHINE_SELECTION_1 ou MACHINE_SELECTION_2 comme suit :

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "ACCELERATOR_TYPE"
        }
      ]
      

      Remplacez les éléments suivants :

    • Types de machines sans disques SSD locaux par défaut : pour associer des disques SSD locaux à vos VM Spot, incluez le champ disks dans les champs MACHINE_SELECTION_1 ou MACHINE_SELECTION_2. Pour chaque disque SSD local que vous souhaitez associer, répétez le champ type et définissez-le sur SCRATCH. Par exemple, pour associer deux disques SSD locaux, incluez les éléments suivants :

      "disks": [
        {
          "type": "SCRATCH"
        },
        {
          "type": "SCRATCH"
        }
      ]
      
  • TARGET_DISTRIBUTION_SHAPE : répartition des ressources demandées. En fonction du type de charge de travail que vous souhaitez exécuter et des zones dans lesquelles vous souhaitez créer des VM, spécifiez l'une des valeurs suivantes :

    • ANY : vous souhaitez créer des VM Spot dans une ou plusieurs zones en fonction de la disponibilité. Spécifiez cette valeur pour les charges de travail par lot.

    • ANY_SINGLE_ZONE : vous souhaitez créer des VM Spot uniquement dans une seule zone en fonction de la disponibilité. Spécifiez cette valeur pour les charges de travail qui nécessitent une communication étendue entre les VM, telles que les charges de travail d'IA ou de HPC.

    • BALANCED : vous souhaitez créer des VM Spot dans une ou plusieurs zones en fonction de la disponibilité, et Compute Engine répartit les VM aussi uniformément que possible entre les zones. Spécifiez cette valeur pour minimiser l'impact des défaillances de zone pour les charges de travail de diffusion ou par lot à disponibilité élevée.

  • SIZE : nombre de VM Spot que vous souhaitez créer.

Le résultat ressemble à ce qui suit :

{
  "recommendations": [
    {
      "scores": {
        "estimatedUptime": "600s",
        "obtainability": 0.9
      },
      "shards": [
        {
          "instanceCount": 90,
          "machineType": "n2-standard-2",
          "provisioningModel": "SPOT",
          "zone": "https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a"
        },
        {
          "instanceCount": 10,
          "machineType": "n2-standard-4",
          "provisioningModel": "SPOT",
          "zone": "https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-c"
        }
      ]
    }
  ]
}

Si vous souhaitez afficher la disponibilité des VM Spot dans des zones spécifiques d'une région, incluez le champ zones dans le corps de la requête.

Étapes suivantes