Hyper-V et Hyper-threading : activé ou désactivé ?

Avec les nouveaux processeurs Xeon prenant en charge l’Hyper-threading, quelle est la sagesse actuelle concernant son utilisation (ou non) sur une machine hôte Hyper-V ?

J’avais initialement l’impression que l’activer dans un environnement d’hôte virtuel pouvait être préjudiciable car les processeurs « supplémentaires » n’étaient pas de vrais cœurs. Cependant, j’ai également lu (sans confirmation) des commentaires indiquant que Microsoft avait fait un travail important pour faire fonctionner correctement Hyper-V dans un environnement Hyper-threading.

Quelqu’un a-t-il des informations solides ou de l’expérience à ce sujet ? Merci !

L’ancien problème de l’Hyper-Threading dans Virtual Server 2005, sans entrer dans les détails trop techniques, est que le cache du processeur était « empoisonné », c’est-à-dire qu’il ne mettait presque rien en cache car les contextes de ce qui se passait sur chaque thread n’étaient pas liés — les faisant se concurrencer pour le cache sur puce.

Les puces plus récentes ont des caches plus grands et plus intelligents, donc c’est moins problématique.

Est-il idéal de l’activer ou le désactiver ? Cela dépend vraiment de la charge de travail. Si les deux threads exécutent la même VM et la même tâche, alors ce serait presque certainement un GROS avantage de l’activer. S’ils faisaient des choses sans rapport avec beaucoup d’E/S RAM aléatoires (plusieurs VM différentes par exemple), cela ne laisserait que la moitié du cache de la puce disponible pour chacun — ce qui en théorie pourrait être plus lent — en réalité, ce n’est plus le cas de nos jours.

Si vous avez des puces de génération plus ancienne cependant, vous voudrez peut-être vérifier les tailles de cache : en virtualisation, plus le cache est grand, mieux c’est. La RAM est véritablement BEAUCOUP plus lente que les processeurs — mais pas AUTANT que les disques durs.

NOTE : Ce que vous lisez qui dit « désactivez » concernait les puces qui étaient à cœur unique avec Hyper-Threading.