La technologie d'hyperthreading permet à un cœur de processeur physique de se comporter comme deux processeurs logiques. Le processeur peut exécuter deux applications indépendantes en même temps. Afin d'éviter toute confusion entre les processeurs logiques et physique, Intel fait référence aux processeurs physiques sous le nom de socket ; les explications de ce chapitre utilisent également cette terminologie.

Intel Corporation a développé la technologie d'hyperthreading afin d'améliorer les performances de ses gammes de processeurs Pentium IV et Xeon. La technologie d'hyperthreading permet à un cœur de processeur unique d'exécuter deux threads indépendants simultanément.

Bien que l'hyperthreading ne double pas les performances d'un système, il peut les optimiser en exploitant mieux les ressources oisives, ce qui permet un débit plus important pour certains types de charges de travail. Une application s'exécutant sur un processeur logique d'un cœur occupé peut obtenir un peu plus de la moitié du débit obtenu lorsqu'elle s'exécute seule sur un processeur sans hyperthreading. Les améliorations de performances apportées par l'hyperthreading dépendent en grande partie des applications ; les performances de certaines applications peuvent décliner avec l'hyperthreading car de nombreuses ressources de processeur (notamment le cache) sont partagées entre les processeurs logiques.

Note : Sur les processeurs équipés de la technologie Hyper-Threading d'Intel, chaque cœur peut posséder deux processeurs logiques partageant la plupart des ressources du cœur, notamment les caches mémoire et les unités fonctionnelles. Ces processeurs logiques sont généralement appelés threads.

De nombreux processeurs ne prennent pas en charge l'hyperthreading et, par conséquent, possèdent uniquement un thread par cœur. Pour ces processeurs, le nombre de cœurs correspond également au nombre de processeurs logiques. Les processeurs suivants prennent en charge l'hyperthreading et possèdent deux threads par cœur.

  • Processeurs basés sur la microarchitecture de processeur Intel Xeon 5500.
  • Intel Pentium 4 (HT activé)
  • Intel Pentium EE840 (HT activé)

Hyperthreading et hôtes ESXi

Un hôte adapté à l'hyperthreading doit se comporter de façon similaire à un hôte sans hyperthreading. Toutefois, si vous activez l'hyperthreading, vous devez prendre en compte certains facteurs.

Les hôtes ESXi gèrent intelligemment le temps processeur afin de garantir une répartition égale de la charge entre les cœurs de processeur du système. Les processeurs logiques situés sur le même cœur possèdent des numéros de CPU consécutifs ; ainsi, les CPU 0 et 1 se trouvent tous deux sur le premier cœur et les CPU 2 et 3 sur le second cœur, etc. Les machines virtuelles sont programmées de préférence sur deux cœurs distincts et non sur deux processeurs logiques du même cœur.

Si aucune tâche n'est affectée à un processeur logique, il est placé en état suspendu, ce qui libère ses ressources d'exécution et permet à la machine virtuelle s'exécutant sur l'autre processeur logique du même cœur d'utiliser l'ensemble des ressources du cœur. VMware Scheduler comptabilise correctement ce temps de suspension et charge une machine virtuelle en cours d'exécution avec l'ensemble des ressources d'un cœur plus qu'une machine virtuelle s'exécutant sur un demi-cœur. Cette approche de la gestion de processeur garantit que le serveur ne viole aucune des règles standard d'allocation de ressources d'ESXi.

Examinez vos besoins en gestion de ressources avant d'activer l'affinité CPU sur les hôtes utilisant l'hyperthreading. Par exemple, si vous liez une machine virtuelle haute priorité au CPU 0 et une autre machine virtuelle haute priorité au CPU 1, les deux machines virtuelles doivent alors partager le même cœur physique. Dans ce cas, il peut être impossible de répondre aux demandes en ressources de ces machines virtuelles. Assurez-vous que tous les paramètres d'affinité personnalisés sont cohérents pour un système utilisant l'hyperthreading.

Activer Hyperthreading

Pour activer l'hyperthreading, vous devez tout d'abord l'activer dans vos paramètres BIOS, puis l'activer dans vSphere Client. L'hyperthreading est activé par défaut.

Consultez votre documentation système pour déterminer si votre CPU prend en charge l'hyperthreading.

Procédure

  1. Assurez-vous que votre système prend en charge la technologie d'hyperthreading.
  2. Activez l'hyperthreading dans le BIOS du système.
    Certains fabricants appellent cette option Processeurs logiques, d'autres l'appellent Activer l'hyperthreading.
  3. Assurez-vous que l'hyperthreading est activé pour l'hôte ESXi.
    1. Accédez à l'hôte dans vSphere Client.
    2. Cliquez sur Configurer.
    3. Sous Système, cliquez sur Paramètres système avancés et sélectionnez VMkernel.Boot.hyperthreading.
      Vous devez redémarrer l'hôte pour que la nouvelle valeur s’applique. L'hyperthreading est activé si la valeur est true.
  4. Sous Matériel, cliquez sur Processeurs pour afficher le nombre de processeurs logiques.

Résultats

L'hyperthreading est activé.