Utilisez les opérations API pour consulter et modifier les topologies CPU des instances ECS afin d'optimiser les performances dans des scénarios tels que la virtualisation, la programmation multithread et le calcul haute performance (HPC).
Contexte
Topologie CPU
Seules certaines familles d'instances Alibaba Cloud prennent en charge deux types de topologies CPU : Hyper-Threading (HT) continuous (ContinuousCoreToHTMapping) et HT discrete (DiscreteCoreToHTMapping).
Topologie CPU HT continue : les cœurs logiques sont attribués de manière continue aux cœurs physiques, ce qui réduit la communication et la contention entre les threads. Cette configuration convient aux tâches nécessitant une faible latence d'accès à la mémoire et une puissance de calcul proche de celle des cœurs physiques, telles que le calcul scientifique, l'analyse de données et le HPC.
Topologie CPU HT discrète : les cœurs logiques sont répartis de manière discrète sur les cœurs physiques, réduisant ainsi la contention des ressources dans les environnements multithread et offrant une meilleure isolation des performances. Cette configuration est adaptée aux tâches assignées à des threads distincts ou aux tâches exigeant des performances élevées sur un seul thread.
Les figures suivantes utilisent une instance x86 dotée de huit vCPU à titre d'exemple.
Les deux types de topologies CPU sont illustrés ci-dessous.
Topologie CPU HT continue

Relations entre les cœurs logiques et les cœurs physiques :
HT 0etHT 1appartiennent àCORE 0.HT 2etHT 3appartiennent àCORE 1.HT 4etHT 5appartiennent àCORE 2.HT 6etHT 7appartiennent àCORE 3.
Topologie CPU HT discrète

Relations entre les cœurs logiques et les cœurs physiques :
HT 0etHT 4appartiennent àCORE 0.HT 1etHT 5appartiennent àCORE 1.HT 2etHT 6appartiennent àCORE 2.HT 3etHT 7appartiennent àCORE 3.
Limites
La modification de la topologie CPU est prise en charge uniquement pour les familles d'instances suivantes :
ecs.g9i, ecs.c9i et ecs.r9i
ecs.hfg9i, ecs.hfc9i et ecs.hfr9i
ecs.g8i, ecs.c8i et ecs.r8i
ecs.g7, ecs.c7 et ecs.r7
ecs.g7a, ecs.c7a et ecs.r7a
ecs.hfg8i, ecs.hfc8i et ecs.hfr8i
ecs.hfg7, ecs.hfc7 et ecs.hfr7
ecs.g6, ecs.c6 et ecs.r6
ecs.g6e, ecs.c6e et ecs.r6e
Consultez la rubrique Famille d'instances.
Consulter les topologies CPU
Appelez l'opération DescribeInstances avec le paramètre AdditionalAttributes et vérifiez le paramètre de réponse TopologyType pour connaître le type de topologie CPU. Consultez la rubrique DescribeInstances.
Valeurs valides pour TopologyType :
ContinuousCoreToHTMapping: topologie CPU HT continue.DiscreteCoreToHTMapping: topologie CPU HT discrète.Vide : la topologie CPU ne peut pas être modifiée.
Modifier les topologies CPU
Avant de modifier une topologie CPU, effectuez des tests de référence et une évaluation des performances afin de déterminer le mode le plus adapté.
Définissez le paramètre CpuOptions.TopologyType pour modifier la topologie CPU d'une instance.
-
Modifier les topologies CPU lors de la création d'une instance
Appelez l'opération RunInstances et définissez le paramètre
CpuOptions.TopologyType. Consultez la rubrique RunInstances. -
Modifier la topologie CPU d'une instance existante
RemarqueL'instance doit être à l'état Stopped.
Appelez l'opération ModifyInstanceAttribute et définissez le paramètre
CpuOptions.TopologyType. Consultez la rubrique ModifyInstanceAttribute.
Valeurs valides pour CpuOptions.TopologyType :
ContinuousCoreToHTMapping: topologie CPU HT continueDiscreteCoreToHTMapping: topologie CPU HT discrète