Pour améliorer les performances des instances, Alibaba Cloud active par défaut l'hyperthreading pour la plupart des types d'instance. Cette fonctionnalité divise chaque cœur physique en deux cœurs logiques. Toutefois, pour les charges de travail gourmandes en mémoire ou nécessitant des performances élevées sur un seul cœur, la désactivation de l'hyperthreading peut améliorer les performances et réduire les coûts de licence logicielle.
Cas d'utilisation
Par défaut, Alibaba Cloud active l'hyperthreading sur la plupart des types d'instance afin d'améliorer les performances multithread. Cependant, pour certaines charges de travail spécifiques, la désactivation de l'hyperthreading peut optimiser les performances globales ou aider à maîtriser les coûts. Voici les scénarios typiques dans lesquels vous pourriez envisager de désactiver l'hyperthreading.
-
Améliorer les performances des charges de travail gourmandes en mémoire
Pour les charges de travail intensives en mémoire, telles que les services de mise en cache, un nombre élevé de threads simultanés n'est pas toujours nécessaire. Dans ces cas, désactivez l'hyperthreading afin d'optimiser le ratio calcul/mémoire et d'améliorer les performances du service.
-
Optimiser les performances des charges de travail mono-cœur
Pour les charges de travail exigeant des performances élevées sur un seul cœur, la désactivation de l'hyperthreading permet de réduire la surcharge liée à la contention des threads et aux changements de contexte.
-
Réduire les coûts de licence logicielle
La réduction du nombre de cœurs de processeur actifs ou la désactivation de l'hyperthreading pour diminuer le nombre de cœurs physiques ou logiques permet de réduire efficacement les coûts de licence logicielle.
Facturation
La modification des options de processeur affecte uniquement le nombre de cœurs activés ou le paramètre d'hyperthreading, et non le nombre total de vCPU défini par le type d'instance. Par conséquent, le tarif associé au type d'instance reste inchangé.
Limites
Pour certaines familles d'instances, vous ne pouvez configurer les options de processeur qu'en utilisant une API, une CLI ou un SDK.
-
Seuls certains types d'instance prennent en charge les options de processeur permettant d'ajuster le nombre de cœurs de processeur activés et les paramètres d'hyperthreading. Les valeurs de paramètre prises en charge varient selon le type d'instance.
RemarqueCliquez sur les liens des familles d'instances ci-dessous pour consulter les valeurs prises en charge pour le nombre de cœurs physiques et le nombre de threads par cœur pour chaque type d'instance.
Procédure
Vous pouvez spécifier les options de processeur lors de la création d'une instance ou les modifier pour une instance existante.
Configurer les options de processeur lors de la création d'une instance
Vous pouvez ajuster le nombre de cœurs de processeur activés et les paramètres d'hyperthreading lors de la création d'une instance. La procédure est la suivante :
Console
Lorsque vous créez une instance à l'aide de l'option Lancement personnalisé, vous pouvez spécifier le nombre de cœurs physiques activés et configurer l'hyperthreading dans la section Paramètres avancés > Options de processeur.
|
|
API
Lorsque vous appelez l'opération d'API RunInstances pour créer et démarrer une instance, vous pouvez spécifier le nombre de cœurs physiques activés et configurer l'hyperthreading à l'aide des paramètres suivants :
|
Paramètre |
Type |
Description |
|
CpuOptions.Core |
integer |
Le nombre de cœurs physiques activés. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites. |
|
CpuOptions.ThreadsPerCore |
integer |
Le nombre de threads par cœur. Une valeur de 1 désactive l'hyperthreading. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites. |
CLI
Vous pouvez spécifier le nombre de cœurs (CpuOptions.Core) et la configuration de l'hyperthreading (CpuOptions.ThreadsPerCore) lorsque vous utilisez la CLI pour appeler l'opération RunInstances afin de créer et de démarrer une instance. Voici un exemple de commande :
Cette commande : Crée une instance ecs.g7,8xlarge (qui dispose de 16 cœurs de processeur physiques), en la configurant pour utiliser 10 cœurs physiques (CpuOptions.Core=10) et en désactivant l'hyperthreading (CpuOptions.ThreadsPerCore=1).
aliyun ecs RunInstances --RegionId cn-hangzhou \
--CpuOptions.Core 10 \
--CpuOptions.ThreadsPerCore 1 \
--ImageId aliyun_3_x64_20G_alibase_20250117.vhd \
--InstanceType ecs.g7.8xlarge \
--SecurityGroupId sg-bp1****** \
--VSwitchId vsw-bp1****** \
--SystemDisk.Category cloud_essd \
--Amount 1
Descriptions des principaux paramètres :
CpuOptions.Core : le nombre de cœurs physiques activés. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
CpuOptions.ThreadsPerCore : le nombre de threads par cœur. Une valeur de 1 désactive l'hyperthreading. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
Modifier les options de processeur d'une instance existante
Pour ajuster le nombre de cœurs et les paramètres d'hyperthreading d'une instance existante, vous devez arrêter l'instance avant de pouvoir modifier ses options de processeur. La procédure est la suivante :
Console
Suivez ces étapes pour modifier les options de processeur d'une instance existante dans la console.
|
|
|
|
|
API
Pour spécifier le nombre de cœurs physiques activés et configurer l'hyperthreading, utilisez la séquence d'appels d'API suivante.
Appelez l'opération StopInstance pour arrêter l'instance.
-
Appelez l'opération ModifyInstanceAttribute pour modifier les options de processeur. Les paramètres suivants sont pertinents :
Paramètre
Type
Description
CpuOptions.Core
integer
Le nombre de cœurs physiques activés. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
CpuOptions.ThreadsPerCore
integer
Le nombre de threads par cœur. Une valeur de 1 désactive l'hyperthreading. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
Appelez l'opération StartInstance pour redémarrer l'instance et appliquer les modifications.
CLI
Pour spécifier le nombre de cœurs physiques activés et configurer l'hyperthreading, utilisez la séquence d'appels CLI suivante.
-
Appelez l'opération StopInstance pour arrêter l'instance.
aliyun ecs StopInstance --region cn-hangzhou \ --InstanceId i-bp1****** -
Appelez l'opération ModifyInstanceAttribute pour modifier les options de processeur.
Cette commande : Modifie les options de processeur de l'instance
i-bp1******, en activant 10 cœurs physiques (CpuOptions.Core=10) et en désactivant l'hyperthreading (CpuOptions.ThreadsPerCore=1).aliyun ecs ModifyInstanceAttribute --region cn-hangzhou \ --InstanceId i-bp1****** \ --CpuOptions.Core 10 \ --CpuOptions.ThreadsPerCore 1Descriptions des principaux paramètres :
CpuOptions.Core : le nombre de cœurs physiques activés. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
CpuOptions.ThreadsPerCore : le nombre de threads par cœur. Une valeur de 1 désactive l'hyperthreading. Ce paramètre n'est pris en charge que par certains types d'instance et nécessite une valeur prise en charge. Pour plus de détails, consultez la section Limites.
-
Appelez l'opération StartInstance pour redémarrer l'instance ECS.
aliyun ecs StartInstance --region cn-hangzhou \ --InstanceId i-bp1******
Rubriques connexes
Après avoir modifié les options de processeur, effectuez des tests de stabilité du système pour vous assurer que celui-ci fonctionne comme prévu. Exécutez des tests de charge ou des tests spécifiques à l'application pour observer la réponse et les performances du système.
Une fois qu'une instance ECS est créée, vous pouvez surveiller ses métriques de performance et l'utilisation de ses ressources, et l'optimiser si nécessaire. Pour plus d'informations, consultez la rubrique Afficher les informations de surveillance des instances.
Dans des scénarios tels que la virtualisation, la programmation multithread et le calcul haute performance, vous pouvez afficher et modifier la topologie du processeur (
CpuOptions.TopologyType) afin d'améliorer les performances des instances ECS, de renforcer le parallélisme et d'optimiser l'allocation des ressources.


