Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La personnalisation vCore de machine virtuelle est une nouvelle fonctionnalité de machine virtuelle Azure qui vous permet de mieux contrôler les ressources processeur d’une machine virtuelle. Il se compose de deux fonctionnalités connexes :
Désactiver le multithreading simultané (threads par cœur = 1) : vous permet d’exécuter une machine virtuelle avec un seul thread par processeur physique, désactivant ainsi efficacement l’hyperthreading (SMT). La désactivation offre à votre machine virtuelle une utilisation complète de chaque cœur physique, ce qui peut améliorer les performances de certaines charges de travail (comme certaines applications sensibles à la latence ou HPC) qui bénéficient d’un accès principal exclusif.
Cœurs contraints configurables (personnaliser les processeurs virtuels) : vous permet de choisir un nombre personnalisé de processeurs virtuels pour une nouvelle machine virtuelle, inférieur au nombre par défaut pour cette taille de machine virtuelle. Il vous permet d’allouer uniquement les cœurs de CPU nécessaires afin de réduire les coûts de licence pour les logiciels licenciés par cœur, comme les bases de données ou les serveurs d’analyse, tout en bénéficiant de la mémoire entière et des E/S d’une VM plus grande.
Avantages : avec ces fonctionnalités, vous pouvez optimiser les machines virtuelles pour les performances et les coûts :
Performance: La désactivation de l’hyperthreading peut fournir des performances plus cohérentes et parfois plus élevées en éliminant la contention entre les threads sur le même cœur.
Optimisation des coûts : La réduction du nombre de processeurs virtuels d’une machine virtuelle peut réduire les coûts des logiciels facturés par processeur. Vous pouvez exécuter un serveur SQL Server nécessitant beaucoup de mémoire sur une machine virtuelle avec moins de processeurs virtuels actifs, réduisant les frais de licence SQL, sans payer pour une capacité d’UC inutilisée.
Il n’existe aucun frais supplémentaire pour utiliser ces options de configuration du processeur. Le prix de la machine virtuelle de base reste le même que si vous avez déployé la machine virtuelle de taille complète avec les paramètres par défaut. Toutefois, les clients obtiennent des coûts de licence réduits pour les logiciels facturés par processeur virtuel.
Configuration des paramètres de personnalisation de machine virtuelle
Vous pouvez configurer les paramètres « Threads par cœur » et « processeurs virtuels disponibles » à l’aide du portail Azure, des modèles Azure Resource Manager (ARM) ou des outils en ligne de commande.
Portail Azure
Dans le portail Azure, le flux de travail de création de machine virtuelle dispose d’une interface utilisateur pour ces options.
Commencez à créer une machine virtuelle comme d’habitude (par exemple, cliquez sur Créer une machine virtuelle de ressource > et renseignez l’onglet Informations de base).
Dans la section Taille de l’onglet Informations de base, sélectionnez une taille de machine virtuelle que vous souhaitez utiliser. Sous l'option de sélection de taille, cliquez sur le bouton « Personnaliser les cœurs ». Cela ouvre d’autres champs pour la personnalisation de la machine virtuelle.
Pour désactiver SMT, définissez Threads par cœur sur 1. (Laissez-le à 2 si vous souhaitez maintenir l’hyperthreading activé.)
Pour le nombre de processeurs virtuels, définissez le nombre de processeurs virtuels disponibles au nombre souhaité. Le portail fournit des valeurs valides pour la taille de machine virtuelle choisie.
Poursuivez avec le reste de la création de la machine virtuelle (configurez les disques, la mise en réseau, etc.) et créez la machine virtuelle.
Une fois la machine virtuelle déployée, elle a le nombre spécifié de processeurs virtuels. Si vous définissez threads par cœur sur 1, le système d’exploitation de la machine virtuelle voit la moitié du nombre habituel de processeurs (étant donné que l’hyperthreading est désactivé). Si vous réduisiez les vCPU, il verrait ce nombre réduit.
Azure CLI
Pour désactiver SMT et configurer des cœurs pendant le lancement de l’instance :
Pour désactiver SMT/HT, utilisez la commande Azure CLI et spécifiez une valeur de 1 pour vCPUsParCoeur pour le paramètre --cpu-options. Pour configurer les cœurs, spécifiez le nombre de cœurs de processeurs pour vCPUsAvailable. Dans cet exemple, pour spécifier le nombre de cœurs de processeur par défaut pour une instance de Standard_D8s_v6, utilisez la valeur 8.
Az vm create --resource-group ccctest-rg-01 --name ccctestvm01 --image Ubuntu2204 --size Standard_D8s_v6 --location eastus2euap --admin-username azureuser --generate-ssh-keys --public-ip-address '""' --v-cpus-available 4 --v-cpus-per-core 1
PowerShell
Pour désactiver SMT et configurer des cœurs pendant le lancement de l’instance
Utilisez PowerShell et spécifiez les propriétés de l’objet de configuration sous-jacent. Pour désactiver SMT/HT, spécifiez la valeur 1 pour vCPUsPerCore pour le paramètre --cpu-options. Pour configurer les cœurs, spécifiez le nombre de cœurs de processeurs pour vCPUsAvailable.
$vmConfig = New-AzVMConfig -VMName "MyVM" -VMSize "Standard_D8s_v6"
$vmConfig.HardwareProfile.VmSizeProperties = New-Object Microsoft.Azure.Management.Compute.Models.VMSizeProperties
$vmConfig.HardwareProfile.VmSizeProperties.VCPUsAvailable = 4
$vmConfig.HardwareProfile.VmSizeProperties.VCPUsPerCore = 1
Ensuite, passez à définir le système d’exploitation, le réseau, etc. et utilisez New-AzVM pour créer la machine virtuelle. Cette approche utilise directement les objets du Kit de développement logiciel (SDK) Azure PowerShell pour injecter les valeurs.
Modèle ARM (Azure Resource Manager)
Pour automatiser ou dans des scénarios où vous devez déployer via l’infrastructure en tant que code (IaC), vous pouvez utiliser des modèles Azure Resource Manager pour spécifier ces options de processeur. Cela peut être utilisé pour désactiver SMT et déployer des machines virtuelles personnalisées via l’interface CLI ou PowerShell également (en déployant un modèle).
Dans la définition de ressource de votre modèle ARM pour la machine virtuelle, les options de processeur sont spécifiées dans la propriété hardwareProfile de la machine virtuelle. Plus précisément, vous utilisez vmSizeProperties dans hardwareProfile pour définir les valeurs :
vCPUsPerCore : définissez cette valeur sur 1 pour désactiver l'hyperthreading (par exemple, 1 thread par cœur). Omettez cette propriété ou définissez la valeur Null/2 pour utiliser l’hyperthreading par défaut (2 threads par cœur).
vCPUsAvailable : définissez cette valeur sur le nombre de processeurs virtuels que vous souhaitez activer. Si cette propriété n’est pas définie, la machine virtuelle utilise le nombre par défaut de processeurs virtuels pour cette taille.
Voici quelques exemples d’extraits de modèle ARM pour différents scénarios :
Désactiver SMT (SMT/HT Désactivé)
Cet extrait de code montre le paramètre permettant de désactiver SMT sur une machine virtuelle (la machine virtuelle utilise 1 thread par cœur)
"properties": {
"hardwareProfile": {
"vmSize": " Standard_D8s_v6",
"vmSizeProperties": {
"vCPUsPerCore": 1
}
},
...
}
Dans ce cas, si Standard_D8s_v6 a normalement 8 processeurs virtuels (4 cœurs * 2 threads), la définition de processeurs virtuelsPerCore : 1 signifie que la machine virtuelle a 4 processeurs virtuels (un par cœur).
Limiter le nombre de processeurs virtuels (personnaliser les cœurs)
Cet extrait de code montre une machine virtuelle configurée pour utiliser un nombre spécifique de processeurs virtuels (moins que la valeur par défaut)
"properties": {
"hardwareProfile": {
"vmSize": " Standard_D8s_v6",
"vmSizeProperties": {
"vCPUsAvailable": 2
}
},
...
}
Ici, nous avons demandé deux cœurs. Sur Standard_D8s_v6 (qui utilise le hyperthreading par défaut), 2 cœurs physiques sont alloués et, comme le SMT est toujours activé par défaut (2 threads par cœur), la machine virtuelle dispose de 4 vCPUs.
Désactiver SMT et personnaliser des processeurs virtuels
Vous pouvez combiner les deux paramètres comme indiqué :
"properties": {
"hardwareProfile": {
"vmSize": " Standard_D8s_v6",
"vmSizeProperties": {
"vCPUsPerCore": 1,
"vCPUsAvailable": 2
}
},
...
}
Dans cet exemple, vCPUsPerCore : 1 désactive SMT et vCPUsAvailable : 2, puis demande 2 processeurs virtuels. Avec SMT désactivé, ces 2 correspondent directement à deux cœurs physiques (pas de multithreading). La machine virtuelle a deux processeurs logiques dans le système d’exploitation.
Veillez à utiliser une API version 2021-07-01 ou ultérieure pour la ressource Microsoft.Compute/virtualMachines dans votre modèle, comme c’est le cas lorsque ces propriétés ont été introduites.
Identifier les vCores pris en charge pour la configuration
Pour déterminer les processeurs virtuels pouvant être limités dans une région spécifique, vous pouvez utiliser Azure CLI ou le portail Azure.
Utilisation d’Azure CLI
Exécutez la commande suivante pour récupérer la liste des références SKU de calcul pour votre abonnement et votre région :
az vm list-skus --location {location} --resource-type virtualMachines --query "[name=='VM_NAME_HERE']"
- Cette commande affiche les configurations de processeurs virtuels prises en charge. Le champ « vCPUsConstraintsAllowed » indique les vCores pris en charge.
Utilisation du portail Azure
Si vous demandez une configuration de processeur virtuel qui n’est pas prise en charge, le portail affiche un message d’erreur et fournit la liste des options de processeur virtuel prises en charge pour cette taille de machine virtuelle.
Considérations
La plupart des familles de machines virtuelles Azure prennent en charge ces fonctionnalités, mais certaines règles et considérations importantes sont à prendre en compte lors de l’utilisation de la fonctionnalité :
Il est possible de désactiver l'hyperthreading uniquement sur les tailles de machines virtuelles qui l'utilisent par défaut (par exemple, les machines virtuelles avec 2 threads par cœur).
Vous ne pouvez réduire que le nombre de processeurs virtuels, et non l’augmenter au-delà de la valeur par défaut de la machine virtuelle. La valeur vCPUsAvailable spécifiée doit être inférieure ou égale au nombre de processeurs virtuels par défaut de la taille de machine virtuelle choisie.
Sur les tailles de machine virtuelle hyperthread (2 threads/cœurs par défaut), tout nombre de processeurs virtuels personnalisés doit être un nombre pair.
Vous pouvez désactiver l’hyperthreading et limiter les processeurs virtuels en même temps sur la même machine virtuelle. Dans ce cas, les deux règles ci-dessus s’appliquent.
Les options de processeur ne peuvent être spécifiées qu’au moment de la création de la machine virtuelle ou pendant une opération de redimensionnement. Vous ne pouvez pas ajuster dynamiquement le nombre de cœurs ou le paramètre SMT sur une machine virtuelle allouée, cette mise à jour exige que la machine virtuelle soit libérée.
Si vous passez à une nouvelle taille de machine virtuelle dans la même famille qui prend également en charge la fonctionnalité, vos paramètres sont transférés par défaut.
Si vous redimensionnez une machine virtuelle à une taille qui ne prend pas en charge le paramètre, l’opération est bloquée ou entraîne une erreur.
Chaque fois que vous redimensionnez une machine virtuelle (dans la même série ou dans une autre série), un redémarrage de machine virtuelle se produit. Planifiez les temps d’arrêt pendant l’opération de redimensionnement.
En préversion, seules les images de la Place de marché Azure tierces (Windows Server, Ubuntu, Red Hat, SUSE, etc.) et les images personnalisées sont prises en charge. Les offres de la Place de marché spécialisée telles que SQL Server sur les machines virtuelles ne sont pas prises en charge.