Para melhorar o desempenho da instância, a Alibaba Cloud ativa o hyper-threading por padrão na maioria dos tipos de instância. Esse recurso divide cada núcleo físico em dois núcleos lógicos. No entanto, para cargas de trabalho com uso intensivo de memória ou que exigem alto desempenho de núcleo único, desativar o hyper-threading pode aumentar o desempenho e reduzir custos com licenças de software.
Casos de uso
Por padrão, a Alibaba Cloud ativa o hyper-threading na maioria dos tipos de instância para aprimorar o desempenho multithread. Contudo, em certas cargas de trabalho específicas, desativar esse recurso pode melhorar o desempenho geral ou ajudar a otimizar custos. A seguir, apresentamos cenários típicos em que vale a pena considerar a desativação do hyper-threading.
-
Melhorar o desempenho em cargas de trabalho com uso intensivo de memória
Em cenários com alta demanda de memória, como serviços de cache, talvez não seja necessário um grande número de threads simultâneas. Nesses casos, desative o hyper-threading para otimizar a proporção entre computação e memória e melhorar o desempenho do serviço.
-
Aumentar o desempenho em cargas de trabalho de núcleo único
Quando a aplicação exige alto desempenho de um único núcleo, desativar o hyper-threading reduz a sobrecarga causada pela contenção de threads e pela troca de contexto.
-
Reduzir custos com licenças de software
Diminuir a quantidade de núcleos de CPU ativos ou desativar o hyper-threading para reduzir a contagem de núcleos físicos ou lógicos reduz efetivamente os custos com licenciamento de software.
Faturamento
A alteração das opções de CPU afeta apenas o número de núcleos ativados ou a configuração de hyper-threading, sem modificar o total de vCPUs definidas pelo tipo de instância. Portanto, o valor cobrado pelo tipo de instância permanece inalterado.
Limitações
Em algumas famílias de instâncias, a configuração das opções de CPU só é possível via API, CLI ou SDK.
-
Apenas determinados tipos de instância oferecem suporte a opções de CPU para ajustar o número de núcleos ativados e as configurações de hyper-threading. Os valores de parâmetros compatíveis variam conforme o tipo de instância.
NotaClique nos links das famílias de instâncias abaixo para visualizar os valores compatíveis para a contagem de núcleos físicos e o número de threads por núcleo de cada tipo de instância.
Procedimento
Especifique as opções de CPU durante a criação da instância ou modifique-as em uma instância existente.
Configure opções de CPU na criação da instância
Ao criar uma instância, ajuste o número de núcleos de CPU ativados e as configurações de hyper-threading. O procedimento é o seguinte:
Console
Ao criar uma instância usando a opção Custom Launch, especifique o número de núcleos físicos ativados e configure o hyper-threading na seção Advanced Settings > CPU Options.
|
|
API
Ao chamar a operação da API RunInstances para criar e iniciar uma instância, especifique o número de núcleos físicos ativados e configure o hyper-threading usando os seguintes parâmetros:
|
Parâmetro |
Tipo |
Descrição |
|
CpuOptions.Core |
integer |
Número de núcleos físicos ativados. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações. |
|
CpuOptions.ThreadsPerCore |
integer |
Número de threads por núcleo. O valor 1 desativa o hyper-threading. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações. |
CLI
Especifique a contagem de núcleos (CpuOptions.Core) e a configuração de hyper-threading (CpuOptions.ThreadsPerCore) ao usar a CLI para chamar a operação RunInstances e criar/iniciar uma instância. Veja abaixo um exemplo de comando:
Este comando: Cria uma instância ecs.g7.8xlarge (que possui 16 núcleos físicos de CPU), configurando-a para usar 10 núcleos físicos (CpuOptions.Core=10) e desativando o hyper-threading (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
Descrição dos principais parâmetros:
CpuOptions.Core: Número de núcleos físicos ativados. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
CpuOptions.ThreadsPerCore: Número de threads por núcleo. O valor 1 desativa o hyper-threading. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
Modifique opções de CPU de uma instância existente
Para ajustar a contagem de núcleos e as configurações de hyper-threading em uma instância existente, pare a instância antes de modificar suas opções de CPU. Siga o procedimento abaixo:
Console
Siga estas etapas para alterar as opções de CPU de uma instância existente no console.
|
|
|
|
|
API
Para especificar o número de núcleos físicos ativados e configurar o hyper-threading, utilize a seguinte sequência de chamadas de API.
Chame a operação StopInstance para parar a instância.
-
Chame a operação ModifyInstanceAttribute para alterar as opções de CPU. Os parâmetros relevantes são:
Parâmetro
Tipo
Descrição
CpuOptions.Core
integer
Número de núcleos físicos ativados. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
CpuOptions.ThreadsPerCore
integer
Número de threads por núcleo. O valor 1 desativa o hyper-threading. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
Chame a operação StartInstance para reiniciar a instância e aplicar as alterações.
CLI
Para especificar o número de núcleos físicos ativados e configurar o hyper-threading, utilize a seguinte sequência de comandos da CLI.
-
Chame a operação StopInstance para parar a instância.
aliyun ecs StopInstance --region cn-hangzhou \ --InstanceId i-bp1****** -
Chame a operação ModifyInstanceAttribute para alterar as opções de CPU.
Este comando: Modifica as opções de CPU da instância
i-bp1******, ativando 10 núcleos físicos (CpuOptions.Core=10) e desativando o hyper-threading (CpuOptions.ThreadsPerCore=1).aliyun ecs ModifyInstanceAttribute --region cn-hangzhou \ --InstanceId i-bp1****** \ --CpuOptions.Core 10 \ --CpuOptions.ThreadsPerCore 1Descrição dos principais parâmetros:
CpuOptions.Core: Número de núcleos físicos ativados. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
CpuOptions.ThreadsPerCore: Número de threads por núcleo. O valor 1 desativa o hyper-threading. Este parâmetro tem suporte apenas em tipos específicos de instância e requer um valor válido. Para mais detalhes, consulte Limitações.
-
Chame a operação StartInstance para reiniciar a instância ECS.
aliyun ecs StartInstance --region cn-hangzhou \ --InstanceId i-bp1******
Tópicos relacionados
Após modificar as opções de CPU, execute testes de estabilidade para garantir que o sistema opere conforme o esperado. Realize testes de carga ou testes específicos da aplicação para observar a resposta e o desempenho do sistema.
Depois de criar uma instância ECS, monitore suas métricas de desempenho e utilização de recursos e otimize-a conforme necessário. Para mais informações, consulte Visualizar informações de monitoramento da instância.
Em cenários como virtualização, programação multithread e computação de alto desempenho, visualize e modifique a topologia da CPU (
CpuOptions.TopologyType) para melhorar o desempenho da instância ECS, aumentar o paralelismo e otimizar a alocação de recursos.


