Instances de VM préemptives

Cette page décrit les instances de machine virtuelle (VM) préemptive. Pour apprendre à créer une instance préemptive, consultez la documentation sur la création d'une instance préemptive. Pour en savoir plus sur les instances en général, consultez la documentation relative aux instances de machine virtuelle.

Qu'est-ce qu'une instance préemptive ?

Une VM préemptive est une instance que vous pouvez créer et exécuter à un prix nettement inférieur à celui des instances normales. Cependant, Compute Engine peut arrêter (préempter) ces instances s'il a besoin d'accéder à ces ressources pour d'autres tâches. Les instances préemptives représentent la capacité excédentaire de Compute Engine. Leur disponibilité varie donc en fonction des usages.

Si vos applications sont tolérantes aux pannes et peuvent résister à de possibles préemptions d'instances, les instances préemptives vous aideront à réduire considérablement les frais liés à Compute Engine. Par exemple, les tâches de traitement par lot peuvent s'exécuter sur des instances préemptives. Si certaines de ces instances sont arrêtées pendant le traitement, celui-ci se poursuit malgré tout, mais plus lentement. Les instances préemptives effectuent vos tâches de traitement par lot sans imposer de charge de travail supplémentaire à vos instances existantes et sans vous obliger à payer le prix fort pour des instances normales supplémentaires.

Limitations de l'instance préemptive

Les instances préemptives fonctionnent comme des instances normales, mais présentent les limitations suivantes :

  • Compute Engine peut arrêter des instances préemptives à tout moment en raison d'événements système. La probabilité que Compute Engine arrête une instance préemptive pour un événement système est généralement faible, mais peut varier d'un jour à l'autre et d'une zone à l'autre, en fonction des conditions du moment.
  • Compute Engine arrête toujours les instances préemptives après 24 heures d'exécution. Certaines actions réinitialisent ce délai.
  • Les instances préemptives sont des ressources finies de Compute Engine. Elles peuvent donc ne pas être toujours disponibles.
  • Les instances préemptives ne peuvent pas migrer à chaud vers une instance de VM standard ou être configurées pour redémarrer automatiquement en cas d'événement de maintenance.
  • En raison des limitations ci-dessus, les instances préemptives ne sont couvertes par aucun contrat de niveau de service (et, pour plus de clarté, sont exclues du contrat de niveau de service de Compute Engine).
  • Les crédits accordés par la version gratuite de Google Cloud Platform pour Compute Engine ne s'appliquent pas aux instances préemptives.

Processus de préemption

Pour préempter une instance, Compute Engine effectue les étapes suivantes :

  1. Compute Engine envoie un avis de préemption à l'instance sous la forme d'un signal ACPI G2 Soft Off. Vous pouvez utiliser un script d'arrêt pour traiter cet avis de préemption et effectuer des actions de nettoyage avant que l'instance ne s'arrête.
  2. Si l'instance ne s'arrête pas après 30 secondes, Compute Engine envoie un signal ACPI G3 Mechanical Off au système d'exploitation.
  3. Compute Engine fait passer l'instance à l'état TERMINATED.

Vous pouvez simuler une préemption d'instance en arrêtant l'instance.

Les instances préemptées apparaissent toujours dans votre projet, mais vous n'êtes pas facturé pour les heures où l'instance se trouve dans l'état TERMINATED. Vous pouvez accéder aux données et les récupérer à partir de tous les disques persistants associés à l'instance. Ces disques continuent néanmoins à entraîner des frais de stockage tant qu'ils n'ont pas été supprimés. Comme pour les instances normales, les disques persistants sélectionnés pour la suppression automatique sont supprimés en même temps que l'instance préemptive.

Si Compute Engine arrête une instance préemptive moins d'une minute après sa création, vous n'êtes pas facturé pour l'utilisation de cette instance de VM. Cela garantit que vous ne payez pas pour les instances préemptives, sauf si celles-ci ont accompli un travail conséquent. Cependant, les frais des systèmes d'exploitation premium sont calculés comme habituellement.

Sélection de préemption

Généralement, Compute Engine évite de préempter un trop grand nombre d'instances d'un seul client et préempte, dans la mesure du possible, les instances lancées le plus récemment. Cela peut être un peu frustrant au début, mais à long terme, cette stratégie permet de minimiser les pertes dans votre cluster. Compute Engine ne vous facture pas les instances si elles sont préemptées dans la minute qui suit leur exécution. Google ne se sert pas de l'utilisation du processeur d'une VM pour déterminer si celle-ci est préemptée.

À titre de référence, nous avons observé à partir des données historiques que le taux de préemption moyen varie entre 5 % et 15 % par jour par projet (moyenne établie sur sept jours), et qu'il augmente parfois plus rapidement en fonction de l'heure et de la zone. N'oubliez pas qu'il s'agit seulement d'une observation : les taux ou les distributions de préemption des instances préemptives ne sont régis par aucune garantie ni aucun contrat de niveau de service.

Certaines actions réinitialisent le délai de 24 heures associé aux instances préemptives. Plus précisément, si vous arrêtez et démarrez une instance, Compute Engine réinitialise le délai, car l'instance passe à l'état TERMINATED. Ce délai n'est toutefois pas réinitialisé par d'autres actions qui maintiennent l'état RUNNING, par exemple la réinitialisation d'une instance ou l'exécution de la commande sudo reboot depuis la VM.

Instances préemptives dans un groupe d'instances géré

Vous pouvez créer des instances préemptives dans un groupe d'instances géré. Spécifiez l'option préemptive dans le modèle d'instance avant de créer ou de mettre à jour le groupe.

Les groupes d'instances gérés ne peuvent créer ou ajouter de nouvelles instances préemptives que lorsque d'autres ressources Compute Engine sont disponibles. Si ces ressources sont limitées, les groupes d'instances gérés ne pourront ni redimensionner ni remettre à l'échelle automatiquement le nombre d'instances préemptives dans le groupe.

Les groupes d'instances gérés tentent toujours de conserver leur taille cible ou la taille spécifiée par l'autoscaler pour ce groupe. Si Compute Engine arrête une instance préemptive dans un groupe d'instances géré, le groupe tente à plusieurs reprises de recréer cette instance à l'aide du modèle d'instance spécifié. Si les ressources nécessaires sont à nouveau disponibles, le groupe recrée l'instance et conserve la taille du groupe cible.

Systèmes d'exploitation premium sur des instances préemptives

Les instances préemptives ne réduisent pas le coût des systèmes d'exploitation premium et ne modifient pas la manière dont vous êtes facturé pour l'utilisation de ces systèmes d'exploitation. Si Compute Engine arrête une instance préemptive qui exécute un système d'exploitation premium, vous êtes facturé pour ce système d'exploitation comme si vous aviez vous-même arrêté l'instance. Les frais d'utilisation minimale s'appliquent toujours, et Compute Engine calcule toujours les factures des systèmes d'exploitation premium en arrondissant le prix à la tranche d'utilisation la plus proche.

Les types de machines sur instances préemptives qui s'exécutent sur des systèmes d'exploitation premium sont toujours facturés à la seconde et suivent les prix indiqués sur la page Tarifs par type de machine.

Disques SSD locaux sur des instances préemptives

Vous pouvez démarrer une instance de VM préemptive avec un disque SSD local, auquel cas Compute Engine appliquera les tarifs des ressources préemptives pour l'utilisation de ce disque. Les disques SSD locaux associés à des instances préemptives fonctionnent comme des disques SSD locaux normaux, et leur durée de vie n'excède pas celle de l'instance. Vous pouvez demander un quota distinct pour les disques SSD locaux préemptifs, mais vous pouvez également choisir d'utiliser votre quota de disques SSD locaux habituel lors de la création de disques SSD locaux préemptifs.

L'utilisation des disques SSD locaux sur Compute Engine ne vous est pas facturée si leurs instances sont préemptées dans la minute qui suit leur exécution.

Pour en savoir plus sur les disques SSD locaux, consultez la page Ajouter des disques SSD locaux.

GPU sur des instances préemptives

Vous pouvez ajouter des GPU à vos instances de VM préemptives en bénéficiant des prix réduits des ressources préemptives. Les GPU associés à des instances préemptives fonctionnent comme des GPU normaux dont la durée de vie n'excède pas celle de l'instance. Les instances préemptives dotées de GPU suivent le même processus de préemption que toutes les instances préemptives.

Lorsque vous ajoutez un GPU à une instance préemptive, vous utilisez votre quota de GPU habituel. Si vous avez besoin d'un quota distinct pour les GPU préemptifs, demandez un quota de GPU préemptifs distinct.

Lors des événements de maintenance, les instances préemptives avec GPU sont préemptées par défaut et ne peuvent pas être redémarrées automatiquement. Si vous souhaitez recréer vos instances après leur préemption, utilisez un groupe d'instances géré. Les groupes d'instances gérés recréent vos instances si les ressources de processeur virtuel, de mémoire et de GPU sont disponibles.

Si vous souhaitez être averti avant que votre instance soit préemptée, ou encore configurer votre instance pour qu'elle redémarre automatiquement après un événement de maintenance, utilisez une instance non préemptive avec un GPU. Pour les instances non préemptives avec GPU, il est prévu qu'un avis soit envoyé une heure avant la préemption.

L'utilisation de GPU sur Compute Engine ne vous est pas facturée si leurs instances sont préemptées dans la minute qui suit leur exécution.

Pour connaître les étapes permettant de faire en sorte qu'une instance non préemptive redémarre automatiquement, consultez la section Mettre à jour les options d'une instance.

Pour apprendre à créer des instances préemptives avec des GPU associés, consultez la section Créer une instance avec un GPU.

Tester les paramètres de préemption

Vous pouvez simuler des événements de maintenance sur vos instances pour forcer la préemption. Utilisez cette fonctionnalité pour tester la manière dont vos applications gèrent les instances préemptives. Consultez la section Tester vos règles de disponibilité pour savoir comment tester les événements de maintenance sur vos instances.

Vous pouvez également simuler une préemption d'instance en arrêtant l'instance plutôt qu'en simulant un événement de maintenance. Cela évite d'atteindre les limites du quota.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine