Comment définir les cœurs de processeur par socket dans VMware vSphere : bonnes pratiques
Lors de la configuration des paramètres du processeur pour une nouvelle machine virtuelle, il est important de bien comprendre plusieurs concepts fondamentaux. Il s’agit notamment de savoir comment calculer le nombre de cœurs de processeur par socket et comment cette configuration peut influencer les performances de la machine virtuelle. Il est également essentiel de comprendre l’impact de l’utilisation d’un nombre réduit de processeurs comportant davantage de cœurs par rapport à un nombre plus élevé de processeurs comportant moins de cœurs. Clarifier ces relations peut vous aider à choisir une configuration adaptée à votre charge de travail et aux capacités de l’hôte.
Poursuivez votre lecture pour en savoir plus sur ces concepts et les principes de base de la configuration du processeur pour les machines virtuelles sur des hôtes ESXi.
Terminologie
Commençons par définir les termes que vous devez connaître lors de la configuration des paramètres du processeur pour machines virtuelles afin de vous aider à comprendre le principe de fonctionnement.
Un processeur (unité centrale de traitement, puce microprocesseur ou processeur) est un composant informatique essentiel. Il s’agit d’un circuit électronique composé de transistors et connecté à un socket. Un processeur exécute des instructions pour effectuer des calculs, lancer des applications et accomplir des tâches. Lorsque la fréquence d’horloge des processeurs a atteint ses limites thermiques, les fabricants ont modifié l’architecture des processeurs et ont commencé à produire des processeurs dotés de plusieurs cœurs. Pour éviter toute confusion entre les processeurs physiques et logiques ou les cœurs de processeur, certains fournisseurs désignent un processeur physique par le terme « socket d’UC ».
Un socket d’UC est un connecteur physique situé sur la carte mère auquel un seul processeur physique est connecté. Une carte mère comporte au moins un socket d’UC. Les cartes mères de serveurs disposent généralement de plusieurs sockets d’UC prenant en charge plusieurs processeurs multicœurs. Les sockets d’UC sont normalisés pour les différentes séries de processeurs. Intel et AMD utilisent des sockets d’UC différents pour leurs familles de processeurs.
Un cœur de processeur contient le cache L1. Il effectue des tâches de calcul de manière indépendante, sans interagir avec les autres cœurs ni avec les composants externes d’un « grand » processeur qui sont partagés entre les cœurs. En substance, un cœur peut être considéré comme un petit processeur intégré au processeur principal connecté à un socket. Les applications doivent prendre en charge les calculs parallèles pour utiliser rationnellement les processeurs multicœurs.
L’Hyper-Threading est une technologie développée par Intel pour activer le calcul parallèle sur des processeurs dotés d’un seul cœur. L’Hyper-Threading a fait son apparition en 2002 avec la version du processeur Pentium 4 HT, destiné aux ordinateurs de bureau. Le système d’exploitation détecte un processeur monocœur doté de la technologie Hyper-Threading comme un processeur à deux cœurs logiques (et non physiques). De même, un processeur à quatre cœurs doté de la technologie Hyper-Threading apparaît au système d’exploitation comme un processeur à 8 cœurs. Plus le nombre de threads exécutés sur chaque cœur est élevé, plus le nombre de tâches pouvant être effectuées en parallèle est important. Les processeurs Intel modernes disposent à la fois de plusieurs cœurs et de la technologie Hyper-Threading. Celle-ci est généralement activée par défaut et peut être activée ou désactivée dans le BIOS. La technologie Simultaneous Multi-Threading (SMT) d’AMD est l’équivalent de l’Hyper-Threading pour les processeurs AMD.
Un vCPU est un processeur virtuel configuré en tant que périphérique virtuel dans les paramètres matériels virtuels d’une machine virtuelle. Il peut utiliser plusieurs cœurs de processeur. Un vCPU est connecté à un socket virtuel.
La surallocation de processeurs se produit lorsque vous allouez à des VMs résidant sur un hôte physique un nombre de processeurs logiques (cœurs de CPU) supérieur au nombre total de processeurs logiques disponibles sur l’hôte.
Le NUMA (Non-Uniform Memory Access) est une architecture de mémoire informatique utilisée dans les ordinateurs multiprocesseurs. L’idée est de fournir une mémoire distincte à chaque processeur (contrairement à l’UMA, où tous les processeurs accèdent à une mémoire partagée via un bus). Parallèlement, un processeur peut accéder à la mémoire appartenant à d’autres processeurs en utilisant un bus partagé (tous les processeurs accèdent à l’ensemble de la mémoire de l’ordinateur). Un processeur bénéficie d’un gain de performances en accédant plus rapidement à sa propre mémoire locale qu’aux autres mémoires d’un ordinateur multiprocesseur.

Ces architectures de base sont combinées dans les ordinateurs multiprocesseurs modernes. Les processeurs sont regroupés au sein d’un boîtier ou d’un nœud de processeur multicœur. Ceux qui appartiennent au même nœud partagent l’accès aux modules de mémoire, à l’instar de l’architecture UMA. De plus, les processeurs peuvent accéder à la mémoire d’un nœud distant via une interconnexion partagée. C’est ce qui se passe dans l’architecture NUMA, mais avec des performances moindres, car l’accès s’effectue par l’intermédiaire du processeur propriétaire de cette mémoire plutôt que directement.

Les nœuds NUMA sont des couples processeur/mémoire composés d’un socket d’UC et des modules de mémoire les plus proches. La configuration NUMA s’effectue généralement dans le BIOS via les paramètres d’entrelacement des nœuds ou de mémoire entrelacée.
Le NUMA virtuel (vNUMA) est l’équivalent du NUMA pour les machines virtuelles VMware. Un vNUMA utilise les ressources matérielles de plusieurs nœuds NUMA physiques afin d’offrir des performances optimales. La technologie vNUMA expose la topologie NUMA à un système d’exploitation invité. De ce fait, le système d’exploitation invité a connaissance de la topologie NUMA sous-jacente. La version matérielle virtuelle d’une machine virtuelle doit être égale ou supérieure à 8 pour pouvoir utiliser vNUMA.
La gestion de vNUMA a été considérablement améliorée dans VMware vSphere 6.5, 8.0 et 9.0. Cette fonctionnalité n’est plus contrôlée par la valeur « Nombre de processeurs par socket » dans la configuration de la machine virtuelle. Par défaut, vNUMA est activé pour les VMs disposant de plus de 8 processeurs logiques (vCPU). Vous pouvez activer vNUMA manuellement pour une machine virtuelle en modifiant son fichier de configuration VMX et en ajoutant la ligne numa.vcpu.min=X , où X correspond au nombre de vCPU de la machine virtuelle.
Bien que la valeur « Cores per Socket » (Cœurs par socket) ne contrôle pas l’activation de vNUMA, la configuration manuelle de ce paramètre pour qu’il corresponde à la topologie des nœuds NUMA physiques de l’hôte reste une bonne pratique pour obtenir des performances optimales sur les machines virtuelles de grande taille comportant un nombre élevé de vCPU.
Calcul du nombre de cœurs
Découvrons comment calculer le nombre de cœurs de processeur physiques, de cœurs de processeur logiques et d’autres paramètres sur un serveur.
- Le nombre total de cœurs de processeur physiques sur une machine hôte se calcule à l’aide de la formule suivante :
(Nombre de sockets d’UC) x (Nombre de cœurs par processeur) = Nombre de cœurs de processeur physiques
Remarque : seuls les sockets d’UC sur lesquels des processeurs sont installés doivent être pris en compte.
- Si la technologie Hyper-Threading est prise en charge, vous pouvez calculer le nombre de cœurs de processeur logiques par la formule suivante :
(Nombre de cœurs de processeur physiques) x (2 threads par processeur physique) = Nombre de processeurs logiques
- Enfin, utilisez cette formule pour calculer les ressources processeur disponibles pouvant être attribuées aux VMs :
(Sockets d’UC) x (Cœurs CPU) x (threads)
Par exemple, si vous disposez d’un serveur équipé de deux processeurs, chacun comportant 4 cœurs et effectuant la prise en charge de l’hyper-threading, le nombre total de processeurs logiques pouvant être attribués aux VMs est :
2 (processeurs) x 4 (cœurs) x 2 (HT) = 16 processeurs logiques
Un processeur logique peut être attribué soit comme un processeur unique, soit comme un cœur de processeur unique pour une VMs.
Quant aux machines virtuelles, grâce à leurs fonctionnalités d’émulation matérielle, elles peuvent utiliser plusieurs processeurs et cœurs de processeur dans leur configuration. Un cœur de processeur physique peut être configuré comme un processeur virtuel ou comme un cœur de processeur virtuel pour une machine virtuelle.
- Le nombre total de cycles d’horloge disponibles pour une machine virtuelle est calculé comme suit :
(The number of logical sockets) x (The clock speed of the CPU)
For example, if you configure a VM to use 2 vCPUs with 2 cores when you have a physical processor with a clock speed of 3.0 GHz, then the total clock speed is 2 x 2 x 3 = 12 GHz. If CPU overcommitment is used on the ESXi host, the available frequency for the VM can be less than calculated if VMs perform CPU-intensive tasks.
Limitations for CPU Cores Per Socket
The CPU/core limitations in vSphere 7.0 Update 1, vSphere 8.0 and vSphere 9.0 are listed below:
- The maximum number of virtual processor sockets that can be assigned to a VM is 768. If you want to assign more, configure the VM to use multicore processors.
- The maximum number of processor cores that can be assigned to a single VM is 768 in vSphere 8.0 (virtual hardware version 18) and increases to 960 in vSphere 9.0 (virtual hardware version 22). A virtual machine cannot use more CPU cores than the number of logical processor cores on the physical machine.
- CPU Hot-Add . If a VM has 128 vCPUs or fewer, you cannot use the CPU Hot-Add feature, nor can you edit the CPU configuration while the VM is running.
- OS CPU restrictions . If an operating system has a limit on the number of processors, and you assign more virtual processors to a VM, the additional processors are not identified or used by the guest OS. The OS technical design and OS licensing restrictions can cause these limits. Note that there are operating systems licensed per-socket and per CPU core (for example, Windows Server 2019 or Windows Server 2025).
CPU (CPU sockets) support limits for some operating systems:
- Windows 10 Pro – 2 CPUs
- Windows 10 Home – 1 CPU
- Windows 10 Workstation – 4 CPUs
- Windows 11 Home/Pro x64 – 2 CPUs (max logical processors or vCPUs/cores is 256)
- Windows 11 Pro for Workstations – 4 CPUs (max logical processors or vCPUs/cores is 256)
- Windows Server 2022 (Standard/Datacenter) – 64 CPUs (up to 640 logical processors or CPU cores)
- Windows Server 2025 (Standard/Datacenter) – 64 CPUs (up to 2048 logical processors or CPU cores)
- Windows Server 2019 Standard/Datacenter – 64 CPUs
- Windows XP Pro x64 – 2 CPUs
- Windows 7 Pro/Ultimate/Enterprise – 2 CPUs
- Windows Server 2003 Datacenter – 64 CPUs
Recommandations de configuration
Pour les anciennes versions de vSphere, il est recommandé d’utiliser les sockets plutôt que les cœurs lors de la configuration des machines virtuelles. Au premier abord, vous ne remarquerez peut-être pas de différence significative entre les sockets de processeur et les cœurs de processeur, ce qui peut toutefois affecter les performances des machines virtuelles. Tenez compte de certaines fonctionnalités de configuration. Gardez à l’esprit les concepts NUMA et vNUMA lorsque vous envisagez de configurer plusieurs processeurs virtuels (sockets) pour une machine virtuelle afin d’obtenir des performances optimales.
Si vNUMA n’est pas configuré automatiquement, reproduisez la topologie NUMA du serveur physique. Voici quelques recommandations pour les VMs sous VMware vSphere 6.5 et versions ultérieures (y compris vSphere 8.0 et 9.0) :
- Lorsque vous définissez le nombre de processeurs logiques (vCPU) pour une machine virtuelle, choisissez la configuration « cœurs par socket ». Continuez jusqu’à ce que ce nombre dépasse le nombre de cœurs de processeur sur un seul nœud NUMA du serveur ESXi. Appliquez la même logique jusqu’à ce que vous dépassiez la quantité de mémoire disponible sur un seul nœud NUMA de votre serveur ESXi physique.
- Il arrive parfois que le nombre de processeurs logiques dans la configuration de votre machine virtuelle dépasse le nombre de cœurs de processeur physiques sur un seul nœud NUMA, ou que la quantité de RAM soit supérieure à la mémoire totale disponible pour un seul nœud NUMA. Envisagez de répartir le nombre de processeurs logiques (vCPU) sur le nombre minimum de nœuds NUMA pour obtenir des performances optimales.
- Ne définissez pas un nombre impair de vCPU si le nombre de processeurs ou la quantité de mémoire dépasse le nombre de cœurs de processeur. Il en va de même lorsque la mémoire dépasse la quantité allouée à un seul nœud NUMA sur un serveur physique.
- Ne créez pas de machine virtuelle comportant plus de vCPU que le nombre de cœurs de processeur physiques sur votre hôte physique.
- Si vous ne pouvez pas désactiver vNUMA en raison des conditions à remplir, n’activez pas la fonctionnalité vCPU Ajoute à chaud.
Si vNUMA est activé dans une version de vSphere antérieure à la version 6.5 et que vous avez défini le nombre de processeurs logiques (vCPU) pour la machine virtuelle, sélectionnez le nombre de sockets virtuels tout en conservant le nombre de cœurs par socket égal à 1 (valeur par défaut). La configuration « un cœur par socket » permet à vNUMA de sélectionner automatiquement la meilleure topologie vNUMA pour le système d’exploitation invité. Cette configuration automatique est optimale sur la topologie physique sous-jacente du serveur.
Si vNUMA est activé et que vous utilisez le même nombre de processeurs logiques (vCPU), mais que vous augmentez le nombre de cœurs de processeur virtuels tout en réduisant d’autant le nombre de sockets virtuels, vNUMA ne peut pas définir la configuration NUMA optimale pour la machine virtuelle. En conséquence, les performances de la machine virtuelle s’en trouvent affectées et peuvent se dégrader.
Si le système d’exploitation invité et les autres logiciels installés sur la machine virtuelle sont concédés sous licence par processeur, configurez la machine virtuelle pour qu’elle utilise moins de processeurs avec davantage de cœurs de processeur. Par exemple, Windows Server 2012 R2 est concédé sous licence par socket, tandis que Windows Server 2016 (et les versions ultérieures) l’est par cœur.
Si vous utilisez la surallocation du processeur dans la configuration de vos VMs VMware, gardez à l’esprit les valeurs suivantes :
- 1:1 à 3:1 – L’exécution des VMs ne devrait poser aucun problème ;
- 3:1 à 5:1 – Une dégradation des performances est observée ;
- 6:1 – Une dégradation significative des performances est à prévoir.
Une surallocation du processeur avec des valeurs normales peut être utilisée sans risque dans les environnements de test et de développement.
Configuration des VMs sur les hôtes ESXi
Commencez par déterminer le nombre total de processeurs logiques (le nombre total de CPU) requis pour que votre hôte physique puisse faire fonctionner correctement une machine virtuelle et atteindre des performances suffisantes. Définissez ensuite le nombre de sockets virtuels dotés de processeurs (le nombre de sockets dans vSphere Client) et le nombre de cœurs de processeur (cœurs par socket) que vous devez attribuer à la machine virtuelle, en tenant compte des recommandations et des limitations précédentes. Le tableau ci-dessous peut vous aider à choisir la configuration nécessaire.

Si vous devez attribuer plus de 8 processeurs logiques à la machine virtuelle, le principe reste le même. Pour calculer le nombre de processeurs logiques dans vSphere Client, multipliez le nombre de sockets par le nombre de cœurs. Par exemple, si vous devez configurer une machine virtuelle pour qu’elle utilise des sockets à 2 processeurs, chacun comportant 2 cœurs de processeur, le nombre total de processeurs logiques est alors de 2 * 2 = 4. Cela signifie que vous devez sélectionner 4 processeurs dans les options de matériel virtuel de la machine virtuelle dans vSphere Client pour appliquer cette configuration.
Configuration du nombre de cœurs par processeur dans vSphere Client
Expliquons comment configurer les options de processeur pour une machine virtuelle dans VMware vSphere Client. La procédure de configuration est identique dans vSphere 6.x, 7.0, 8.0 et 9.0.
- Saisissez l’adresse IP de votre vCenter Server dans un navigateur Web, puis ouvrez VMware vSphere Client.
- Dans le navigateur, ouvrez Hôtes et clusters , puis sélectionnez la machine virtuelle que vous souhaitez configurer. Assurez-vous que la machine virtuelle est hors tension pour modifier la configuration du processeur.
- Cliquez avec le bouton droit sur la machine virtuelle, puis sélectionnez Modifier les paramètres dans le menu contextuel pour ouvrir les paramètres de la machine virtuelle.
- Développez la section Processeur dans l’onglet Matériel virtuel de la fenêtre Modifier les paramètres .
- Processeur . Cliquez sur le menu déroulant dans le champ Processeur et sélectionnez le nombre total de processeurs logiques requis pour cette machine virtuelle. Dans cet exemple, nous sélectionnons 4 processeurs logiques pour la machine virtuelle Ubuntu ( blog-Ubuntu1 ).
- Cœurs par socket . Dans cette rubrique, cliquez sur le menu déroulant et sélectionnez le nombre de cœurs requis pour chaque socket virtuelle (processeur).
- Ajout à chaud de processeurs . Pour utiliser cette fonctionnalité, cochez la case Activer l’ajout à chaud de processeurs . N’oubliez pas les limitations et les conditions à remplir.

- Réservation . Sélectionnez l’allocation minimale garantie de la vitesse d’horloge du processeur (fréquence, en MHz ou GHz) pour la machine virtuelle sur un hôte ou un cluster ESXi.
- Limite . Sélectionnez la vitesse d’horloge maximale du processeur de la machine virtuelle. Cette fréquence est la fréquence maximale pour la machine virtuelle, même si celle-ci est la seule à s’exécuter sur l’hôte ou le cluster ESXi et qu’il reste des ressources processeur disponibles. La limite définie s’applique à tous les processeurs virtuels de la VM. Si celle-ci dispose de 2 processeurs monocœur et que la limite est fixée à 1 000 MHz, les deux processeurs virtuels fonctionnent alors à une fréquence d’horloge totale d’un million de cycles par seconde (500 MHz par cœur).
- Shares . Ce paramètre définit la priorité d’utilisation des ressources par les machines virtuelles (Faible, Normale, Élevée, Personnalisée) sur un hôte ESXi ou un pool de ressources. Contrairement aux paramètres Reservation et Limit , le paramètre Shares ne s’applique à la machine virtuelle qu’en cas de pénurie de processeurs au sein d’un hôte ESXi, d’un pool de ressources ou d’un cluster DRS.
Options disponibles pour le paramètre « » (Partages) « » : «
- » (Faible) « » – 500 partages par processeur virtuel «
- » (Normal) « » – 1 000 partages par processeur virtuel «
- » (Élevé) « » – 2 000 partages par processeur virtuel «
- » (Personnalisé) « » – définir une valeur personnalisée «
» Plus la valeur « » (Partages) « » est élevée, plus les ressources CPU allouées à la machine virtuelle au sein d’un hôte ESXi ou d’un pool de ressources sont importantes. «
- » Virtualisation matérielle « ». Cochez cette case pour activer virtualisation imbriquée. Cette option est utile si vous souhaitez exécuter une machine virtuelle à l’intérieur d’une autre machine virtuelle à des fins de test ou de formation.
- Compteurs de performances . Cette fonctionnalité permet le débogage et l’optimisation d’une application installée au sein de la machine virtuelle après avoir mesuré ses performances CPU.
- Affinité de planification . Cette option sert à affecter une machine virtuelle à un processeur spécifique. La valeur peut se présenter ainsi : « 0, 2, 4-7 ».
- I/O MMU . Cette fonctionnalité permet aux VMs d’accéder directement aux périphériques d’entrée/sortie matériels tels que les contrôleurs de stockage, les cartes réseau et les cartes graphiques (plutôt que d’utiliser des périphériques émulés ou paravirtualisés). L’I/O MMU est également appelée « Intel Virtualization Technology for Directed I/O » (Intel VT-d) et « AMD I/O Virtualization » (AMD-V). L’I/O MMU est désactivée par défaut. Cette option est obsolète dans vSphere 7.0. Si l’I/O MMU est activée, la machine virtuelle ne peut pas être migrée à l’aide de vMotion et n’est pas compatible avec les instantanés, la surallocation de mémoire, l’état de suspension de la machine virtuelle, le partage de carte réseau physique et Virtualisation réseau NSX.
Si vous utilisez un hôte VMware ESXi autonome et VMware Host Client pour configurer des VMs dans un navigateur Web, le principe de configuration est le même que pour VMware vSphere Client.
Configuration du nombre de cœurs par processeur dans VMware Workstation
Si vous vous connectez à un serveur vCenter ou à un hôte VMware ESXi via VMware Workstation et que vous ouvrez les paramètres d’une machine virtuelle VMware vSphere, vous pouvez modifier la configuration de base des processeurs virtuels.
- Cliquez sur VM > Paramètres , sélectionnez l’onglet Matériel et cliquez sur Processeurs .
- Sélectionnez le nombre de processeurs virtuels (sockets) et le nombre de cœurs par processeur.
Sur la capture d’écran suivante, vous pouvez voir la configuration du processeur pour la même machine virtuelle Ubuntu que celle configurée précédemment dans vSphere Client.
Le nombre total de cœurs de processeur (cœurs logiques des processeurs physiques sur un hôte ESXi ou un cluster) est calculé et affiché automatiquement ci-dessous. À titre de comparaison, dans l’interface de vSphere Client, vous définissez le nombre total de cœurs de processeur (option « CPUs »), vous sélectionnez le nombre de cœurs par processeur, puis le nombre de sockets virtuels est calculé et affiché.

Configuration des processeurs des VMs dans PowerCLI
Si vous préférez utiliser l’interface de ligne de commande pour configurer les composants de VMware vSphere, utilisez Power CLI pour modifier la configuration du processeur des VMs. Voyons comment modifier la configuration du processeur d’une machine virtuelle ( Ubuntu 19 ) dans PowerCLI. Utilisez ces commandes pour les VMs éteintes.
- Pour configurer une machine virtuelle afin qu’elle utilise deux processeurs virtuels monocœur (deux sockets virtuels sont utilisés), utilisez la commande :
get-VM -name Ubuntu19 | set-VM -NumCpu 2Saisissez un autre nombre si vous souhaitez définir un autre nombre de processeurs (sockets) pour la machine virtuelle.
- Dans l’exemple suivant, vous pouvez voir comment configurer une machine virtuelle pour qu’elle utilise deux processeurs virtuels double cœur (2 sockets sont utilisés) :
$VM=Get-VM -Name Ubuntu19$VMSpec=New-Object -Type VMware.Vim.VirtualMachineConfigSpec -Property @{ “NumCoresPerSocket” = 2$VM.ExtensionData.ReconfigVM_Task($VMSpec)$VM | Set-VM -NumCPU 2Une fois qu’une nouvelle configuration de processeur est appliquée à la machine virtuelle, elle est enregistrée dans le fichier de configuration VMX de la machine virtuelle. Dans cet exemple, nous consultons le fichier Ubuntu19.vmx situé dans le répertoire de la VM sur le magasin de données (/vmfs/volumes/datastore2/Ubuntu19/). Les lignes contenant la nouvelle configuration du processeur se trouvent à la fin du fichier VMX.
numvcpus = « 2 »
cpuid.coresPerSocket = « 2 »
- Si vous devez réduire le nombre de processeurs (sockets) d’une VM, utilisez la même commande que celle indiquée précédemment en indiquant des valeurs inférieures. Par exemple, pour définir un seul processeur (socket) pour une VM, utilisez cette commande :
get-VM -name Ubuntu19 | set-VM -NumCpu 1
Le principal avantage de l’utilisation de Power CLI réside dans la possibilité de configurer plusieurs VMs en bloc. Automatisation des tâches Ceci est important lorsque le nombre de machines virtuelles à configurer est élevé. Utilisez les cmdlets VMware et la syntaxe de Microsoft PowerShell pour créer des scripts.
Conclusion
La configuration des sockets virtuels et des cœurs par socket dans VMware vSphere vous permet de définir la manière dont la topologie du processeur d’une machine virtuelle est présentée au système d’exploitation invité. Ces paramètres permettent de s’assurer que la configuration de la machine virtuelle correspond aux conditions à remplir pour le système d’exploitation et les applications installés. VMware propose des options flexibles pour ajuster le nombre de cœurs par socket, ce qui permet d’adapter la configuration aux besoins en matière d’administration ou d’octroi de licences. Il est essentiel de comprendre comment VMware vSphere présente la topologie du processeur lors de la planification des déploiements de machines virtuelles.