Lorsque vous spécifiez un paramètre d'affinité CPU pour chaque machine virtuelle, vous pouvez restreindre l'attribution des machines virtuelles à un sous-ensemble de processeurs disponible dans des systèmes multiprocesseurs. Lorsque vous utilisez cette fonction, vous pouvez assigner chaque machine virtuelle aux processeurs de l'ensemble d'affinité spécifié.

L'affinité CPU spécifie les contraintes de placement de la machine virtuelle sur le processeur ; l'affinité CPU est également différente de la relation créée par une règle d'affinité MV-MV ou MV-Hôte qui spécifie les contraintes de placement de la machine virtuelle sur l'hôte de machine virtuelle.

Dans ce contexte, le terme CPU fait référence à un processeur logique dans un système utilisant l'hyperthreading et renvoie à un cœur dans un système n'utilisant pas l'hyperthreading.

Le paramètre d'affinité du CPU d'une machine virtuelle s'applique à toutes les CPU virtuels associées à la machine virtuelle, mais également à tous les autres threads (également appelés Worlds) associés à la machine virtuelle. Ces threads de la machine virtuelle effectuent le traitement requis pour émuler la souris, le clavier, l'écran, les CD-ROM et les divers périphériques hérités.

Dans certains cas, notamment pour les charges de travail d'affichage intensives, une communication significative peut être échangée entre les CPU virtuels et ces autres threads de machine virtuelle. Les performances peuvent décliner si le paramètre d'affinité de la machine virtuelle empêche ces threads supplémentaires d'être programmés en même temps que les CPU de la machine virtuelle. Par exemple, une machine virtuelle à processeur unique avec une affinité sur un CPU unique ou une machine virtuelle à SMP à deux voies avec une affinité sur deux CPU uniquement.

Pour obtenir de meilleures performances lorsque vous utilisez les paramètres d'affinité manuels, VMware vous recommande d'inclure au minimum un CPU physique supplémentaire dans le paramètre d'affinité afin de permettre la programmation simultanée de l'un des threads de la machine virtuelle au minimum et des CPU virtuels de la machine virtuelle. Par exemple, une machine virtuelle à processeur unique avec une affinité sur deux CPU au minimum ou une machine virtuelle à SMP deux voies avec une affinité sur trois CPU au minimum.

Attribution d'une machine virtuelle à un processeur spécifique

Utiliser l'affinité de CPU, vous pouvez assigner une machine virtuelle à un processeur spécifique. Cela vous permet de restreindre l'attribution de machines virtuelles à un processeur disponible spécifique dans un système multiprocesseurs.

Procédure

  1. Accédez à la machine virtuelle dans vSphere Client.
    1. Pour trouver une machine virtuelle, sélectionnez un centre de données, un dossier, un cluster, un pool de ressources ou un hôte.
    2. Sélectionnez des VM.
  2. Cliquez avec le bouton droit sur la machine virtuelle et cliquez sur Modifier les paramètres.
  3. Sous Matériel virtuel, développez CPU.
  4. Sous Affinité de planification, sélectionnez l'affinité de processeur physique pour la machine virtuelle.
    Utilisez '-' pour les plages et ',' pour séparer des valeurs.
    Par exemple, « 0, 2, 4-7 » fait référence aux processeurs 0, 2, 4, 5, 6 et 7.
  5. Sélectionnez les processeurs où vous souhaitez que la machine virtuelle s'exécute, puis cliquez sur OK.

Problèmes potentiels d'affinité CPU

Avant d'utiliser l'affinité CPU, il peut être nécessaire de prendre en compte certains problèmes.

Les problèmes potentiels d'affinité CPU sont les suivants :

  • Pour les systèmes multiprocesseurs, les systèmes ESXi effectuent un équilibrage de charge automatique. Évitez de spécifier manuellement l'affinité des machines virtuelles afin d'améliorer les capacités du programmateur à équilibrer la charge entre les processeurs.
  • L'affinité peut interférer avec la capacité de l'hôte ESXi à atteindre la réservation et les partages définis pour une machine virtuelle.
  • Le contrôle d'admission du CPU ne prend pas en compte l'affinité ; une machine virtuelle avec des paramètres d'affinité manuels peut donc ne pas toujours recevoir la totalité de sa réservation.

    Les machines virtuelles ne possédant pas de paramètres d'affinité manuels ne sont pas affectées par les machines virtuelles possédant des paramètres d'affinité manuels.

  • Lorsque vous déplacez une machine virtuelle d'un hôte à l'autre, l'affinité peut ne plus s'appliquer car le nouvel hôte peut posséder un nombre de processeurs différent.
  • Le programmateur NUMA peut ne pas être capable de gérer une machine virtuelle déjà attribuée à certains processeurs à l'aide de l'affinité. Pour plus d'informations, consultez Utilisation des systèmes NUMA avec ESXi.
  • L'affinité peut affecter la capacité de l'hôte à programmer des machines virtuelles sur des processeurs multicœur ou utilisant l'hyperthreading afin qu'elles exploitent totalement les ressources partagées sur ces processeurs.