Après avoir créé une machine virtuelle avec Hyper-V, vous pouvez définir le nombre de processeurs logiques ou vCPU pour améliorer ses performances. Vous pourriez alors vous demander combien pouvez-vous en allouer en fonction des caractéristiques de votre processeur ? Dans cet article, je vais vous explique comment savoir combien de vCPU pouvez-vous allouer sur vos VM Hyper-V.

✏️ Note : Vous trouverez différentes terminologies dans cet article : processeur logique, processeur virtuel ou vCPU. C’est la même chose.

Identifier le nombre de processeurs logiques ou vCPU disponibles

Comme mentionné sur ce Wiki, le processeur physique (CPU) disponible sur l’hôte hyperviseur est divisé en processeurs logiques (vCPU). Ce sont ces processeurs virtuels qui sont allouables à une machine virtuelle.

Avec Windows, il est assez simple d’identifier le nombre de processeurs logiques disponibles sur votre système. Ouvrez le Gestionnaire des tâches, puis allez dans les onglets PerformanceProcesseur. Vous trouverez les caractéristiques du CPU installé sur l’hôte, ainsi que le nombre de processeurs logiques identifiés par le système. Ce dernier indique le nombre de processeurs virtuels allouables

Sur ce serveur Windows, 16 processeurs logiques ou vCPU sont disponibles

Une autre méthode consiste à récupérer le numéro de modèle du CPU et à consulter ses caractéristiques sur le site du constructeur :

Vous trouverez le nombre de threads de votre CPU, ce qui correspond au nombre de processeurs logiques. Je vous invite à lire aussi cet article si vous souhaitez en savoir plus sur les différences en un cœur, un thread et un processeur logique de CPU.

Combien de vCPU pouvez-vous allouer au maximum sur une VM Hyper-V ?

Maintenant que vous connaissez le nombre de processeurs virtuels disponibles sur votre système, vous pouvez plus facilement déterminer le nombre de vCPU que vous pouvez allouer à une machine virtuelle Hyper-V.

En effet, si vous avez à disposition 16 processeurs logiques, comme illustré dans l’exemple plus haut, vous pouvez allouer jusqu’à 16 processeurs virtuels par VM. Si vous en définissez davantage, le gestionnaire Hyper-V vous alertera et ne démarrera pas la VM.

Trop de vCPU ont été alloués. Le gestionnaire Hyper-V ne peut initialiser la machine virtuelle.

Quel ratio de vCPU alloués dois-je maintenir sur Hyper-V ?

Il n’y a pas de réponse universelle à cette question. Cela va dépendre de l’utilisation de votre hôte et de vos VM.

Cela dit, une méthode simple pour définir un bon ratio de vCPU avec Hyper-V, sans surcharger l’hôte, est de conserver un ratio 1-1. C’est-à-dire, un processeur logique affecté à une VM consomme un vCPU. Par exemple, si vous avez 16 processeurs logiques disponibles et vous en affectez quatre à une VM, il vous en reste 12 à affecter.

Vos VM peuvent partager des processeurs logiques

Mais vous pourriez en allouer plus. Lorsqu’une machine virtuelle est exécutée sur l’hôte Hyper-V, elle ne réserve pas l’usage d’un vCPU et ne consomme pas en permanence ses ressources. Ces dernières sont en permanences échangées entre votre hôte et vos VMs. Les besoins sont placés dans une file d’attente et traités en fonction des priorités. Lorsqu’une VM ne consomme pas de vCPU, les ressources sont disponibles pour d’autres machines virtuelles.

Il est donc tout à fait envisageable de définir une relation 2-1. Autrement dit, si vous avez 16 processeurs logiques, vous pourriez affecter 32 vCPU, avec un maximum de 16 processeurs logiques par VM. Tout dépend donc de l’utilisation faite de vos VMs et des tâches qu’elles accomplissent.

Notez qu’il est possible avec Hyper-V de définir plus finement les ressources CPU affectées en voter VM grâce au Contrôle des ressources disponible dans l’onglet Processeur.

Vous pouvez ainsi spécifier les paramètres suivants :

  • Réserve de l’ordinateur virtuel (pourcentage) : permet de garantir les ressources de vCPU. Par exemple, si vous avez défini 2 vCPU et un taux de 100%, vous garantissez la disponibilité des ressources de 2 vCPU
  • Pourcentage des ressources système totale : affiche un calcul du pourcentage total des vCPU disponibles sur l’hôte assignés sur la VM
  • Limite de l’ordinateur virtuel (pourcentage) : Restreint la consommation en pourcentage des vCPU assignés. Par défaut, elle peut consommer 100% des vCPU assignés.
  • Poids relatif : Ce paramètre est utilisé pour prioriser ou non prioriser les VM qui sont en concurrence avec les ressources CPU. Par défaut, le poids est de 100. Vous pouvez définir une valeur entre 0 et 10 000.

Selon la configuration d’Hyper-V, le contrôle des ressources peut ne pas être actif, je vous invite à lire la section suivante pour en savoir plus.

Types de planificateurs d’hyperviseur Hyper-V

Les types de planificateurs déterminent la façon dont l’hyperviseur Hyper-V alloue et gère le travail entre les processeurs virtuels invités.

Vous trouverez les planificateurs suivants :

  • 1 = Planificateur classique, SMT désactivé
  • 2 = Planificateur classique : valeur par défaut jusqu’à Windows Server 2016. Le planificateur classique fournit un modèle de planification de tourniquet préemptif pour les processeurs virtuels invités.
  • 3 = Planificateur principal ou Core : depuis Windows server 2016, offre une meilleure sécurité et isolation et de meilleures performances pour les hôtes compatibles SMT.
  • 4 = Planificateur racine ou Root : introduit depuis Windows 10 version 1803 et dédié à l’usage d’Hyper-V sur des machines comme Windows 10 et Windows 11, afin d’optimiser la gestion et le déploiement.

Ces types de planificateurs sont définis par défaut, en fonction du système d’exploitation, et vous n’avez pas à les modifier dans la plupart des cas.

Pour connaitre les type de planificateur en cours d’exécution sur l’hyperviseur, utilisez la commande dans une fenêtre PowerShell :

Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1
Dans le cas ci-dessus, le type de planificateur est 3, soit Principal ou Core.

Sur une machine Windows 10 ou Windows 11, le planificateur est par défaut sur Root. Vous ne pouvez pas accéder au contrôle des ressources dans l’onglet processeur. Un message s’affiche : « Hyper-V n’est pas configuré de manière à autoriser les contrôles des ressources du processeur« .

Vous pouvez alors modifier le type de planificateur depuis une invite de commande en administrateur avec l’instruction suivante et en modifiant le planificateur en Core ou Classic :

C:\Windows\System32\bcdedit.exe /set hypervisorschedulertype Core

Réserver des ressources pour le système hôte

Maintenant que vous avez compris comment vous pouvez allouer des vCPU sur une VM Hyper-V, vous pourriez vous demander quelle quantité de CPU laisser disponible sur votre hôte, pour un fonctionnement optimum. En effet, ce dernier requiert de la disponibilité pour un bon fonctionnement.

Encore une fois, tout dépendra de l’utilisation de l’hôte et de vos VM. Afin de conserver des ressources, vous pouvez partir sur une base d’un cœur disponible pour le système, au minimum.

Optimiser la charge d’Hyper-V

Pour optimiser la disponibilité des ressources, Microsoft a publié un billet qui récapitule les bonnes pratiques, comme réduire les activités en arrière-plan :

  • Laisser les systèmes hôtes sur l’écran de connexion
  • Vérifier les tâches exécutées par défaut
  • Ne pas laisser le gestionnaire Hyper-V ouvert sur l’hôte
  • Désactiver les services d’arrière-plan SuperFetch et WindowsSearch
  • Supprimer les périphériques non utilisés, comment les DVD et ports COM.
Partagez cet article

Avez-vous trouvé cet article utile ?
Article utile ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *