Especificar opções de CPU para uma instância do Amazon EC2
É possível especificar as opções de CPU durante ou após a instância ser iniciada.
Desabilitar multithreading simultâneo
Para desabilitar o multithreading simultâneo (SMT), também conhecido como hyper-threading, especifique um thread por núcleo.
- Console
-
- AWS CLI
-
Desabilitar o SMT durante a inicialização da instância
Use o comando run-instances da AWS CLI e especifique um valor de 1 para ThreadsPerCore no parâmetro --cpu-options. Em CoreCount, especifique o número de núcleos de CPU. Neste exemplo, para especificar a contagem de núcleos de CPU padrão para uma instância r7i.4xlarge, especifique um valor de 8.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type r7i.4xlarge \
--cpu-options "CoreCount=8,ThreadsPerCore=1" \
--key-name my-key-pair
- PowerShell
-
Desabilitar o SMT durante a inicialização da instância
Use o comando New-EC2Instance e especifique um valor 1 para ThreadsPerCore no parâmetro -CpuOptions. Em CoreCount, especifique o número de núcleos de CPU. Neste exemplo, para especificar a contagem de núcleos de CPU padrão para uma instância r7i.4xlarge, especifique um valor de 8.
New-EC2Instance `
-ImageId 'ami-0abcdef1234567890' `
-InstanceType 'r7i.4xlarge' `
-CpuOptions @{CoreCount=8; ThreadsPerCore=1} `
-KeyName 'my-key-pair'
Especificar um número personalizado de vCPUs na inicialização
É possível personalizar o número de núcleos de CPU e de thread por núcleo da instância ao iniciar uma instância do console do EC2 ou da AWS CLI. Os exemplos nesta seção usam um tipo de instância r5.4xlarge, que tem as seguintes configurações padrão:
-
Núcleos de CPU: 8
-
Threads por núcleo: 2
Por padrão, as instâncias são iniciadas com o número máximo de vCPUs disponíveis para o tipo de instância. Para esse tipo de instância, são 16 vCPUs no total (8 núcleos executando 2 threads cada). Para obter mais informações sobre este tipo de instância, consulte Instâncias otimizadas para memória.
O exemplo apresentado a seguir inicia uma instância r5.4xlarge com quatro vCPUs.
- Console
-
- AWS CLI
-
Para especificar um número personalizado de vCPUs durante a execução da instância
Use o comando run-instances da AWS CLI e especifique o número de núcleos de CPU e o número de threads no parâmetro --cpu-options. É possível especificar dois núcleos de CPU e dois threads por núcleo para obter quatro vCPUs.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type r7i.4xlarge \
--cpu-options "CoreCount=2,ThreadsPerCore=2" \
--key-name my-key-pair
Como alternativa, especifique quatro núcleos de CPU e um thread por núcleo (desabilitar o SMT) para obter quatro vCPUs:
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type r7i.4xlarge \
--cpu-options "CoreCount=4,ThreadsPerCore=1" \
--key-name my-key-pair
- PowerShell
-
Para especificar um número personalizado de vCPUs durante a execução da instância
Use o comando New-EC2Instance e especifique o número de núcleos de CPU e o número de threads no parâmetro -CpuOptions. É possível especificar dois núcleos de CPU e dois threads por núcleo para obter quatro vCPUs.
New-EC2Instance `
-ImageId 'ami-0abcdef1234567890' `
-InstanceType 'r7i.4xlarge' `
-CpuOptions @{CoreCount=2; ThreadsPerCore=2} `
-KeyName 'my-key-pair'
Como alternativa, especifique quatro núcleos de CPU e um thread por núcleo (desabilitar o SMT) para obter quatro vCPUs:
New-EC2Instance `
-ImageId 'ami-0abcdef1234567890' `
-InstanceType 'r7i.4xlarge' `
-CpuOptions @{CoreCount=4; ThreadsPerCore=1} `
-KeyName 'my-key-pair'
Especificar um número personalizado de vCPUs em um modelo de execução
É possível personalizar o número de núcleos de CPU e de threads por núcleo para a instância em um modelo de execução. Os exemplos nesta seção usam um tipo de instância r5.4xlarge, que tem as seguintes configurações padrão:
-
Núcleos de CPU: 8
-
Threads por núcleo: 2
Por padrão, as instâncias são iniciadas com o número máximo de vCPUs disponíveis para o tipo de instância. Para esse tipo de instância, são 16 vCPUs no total (8 núcleos executando 2 threads cada). Para obter mais informações sobre este tipo de instância, consulte Instâncias otimizadas para memória.
O exemplo apresentado a seguir cria um modelo de execução que especifica a configuração para uma instância r5.4xlarge com quatro vCPUs.
- Console
-
- AWS CLI
-
Para especificar um número personalizado de vCPUs em um modelo de execução
Use o comando create-launch-template da AWS CLI e especifique o número de núcleos de CPU e o número de threads no parâmetro CpuOptions. É possível especificar dois núcleos de CPU e dois threads por núcleo para obter quatro vCPUs.
aws ec2 create-launch-template \
--launch-template-name TemplateForCPUOptions \
--version-description CPUOptionsVersion1 \
--launch-template-data file://template-data.json
Veja a seguir um exemplo de arquivo JSON que contém os dados do modelo de execução, que incluem as opções de CPU, para a configuração da instância para este exemplo.
{
"NetworkInterfaces": [{
"AssociatePublicIpAddress": true,
"DeviceIndex": 0,
"Ipv6AddressCount": 1,
"SubnetId": "subnet-0abcdef1234567890"
}],
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "r5.4xlarge",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name",
"Value":"webserver"
}]
}],
"CpuOptions": {
"CoreCount":2,
"ThreadsPerCore":2
}
}
Outra alternativa é especificar quatro núcleos de CPU e um thread por núcleo (desabilite o SMT) para obter quatro vCPUs:
{
"NetworkInterfaces": [{
"AssociatePublicIpAddress": true,
"DeviceIndex": 0,
"Ipv6AddressCount": 1,
"SubnetId": "subnet-0abcdef1234567890"
}],
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "r5.4xlarge",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name",
"Value":"webserver"
}]
}],
"CpuOptions": {
"CoreCount":4,
"ThreadsPerCore":1
}
}
- PowerShell
-
Para especificar um número personalizado de vCPUs em um modelo de execução
Use o New-EC2LaunchTemplate.
New-EC2LaunchTemplate `
-LaunchTemplateName 'TemplateForCPUOptions' `
-VersionDescription 'CPUOptionsVersion1' `
-LaunchTemplateData (Get-Content -Path 'template-data.json' | ConvertFrom-Json)
Alterar opções de CPU para a instância do EC2
À medida que suas necessidades mudam com o tempo, talvez seja necessário alterar a configuração das opções de CPU para uma instância existente. Cada thread executado na instância é conhecido como CPU virtual (vCPU). É possível alterar o número total de vCPUs que são executadas em uma instância existente no console, na AWS CLI, na API ou nos SDKs do Amazon EC2. O estado da instância deve ser Stopped antes que se possa fazer essa alteração.
Para visualizar as etapas do console ou da linha de comando, selecione a guia que corresponde ao ambiente. Para obter informações sobre solicitações e respostas de API, consulte ModifyInstanceCpuOptions na Referência de API do Amazon EC2.
- Console
-
Siga este procedimento para alterar o número de vCPUs ativas para sua instância usando o AWS Management Console.
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação à esquerda, selecione Instâncias. Esse procedimento abre a lista de instâncias definidas para a Região da AWS atual.
-
Na lista de Instâncias, selecione a instância. Outra alternativa é selecionar o link da instância para abrir a página de detalhes da instância.
-
Caso a instância esteja em execução, é necessário interrompê-la antes de continuar. No menu Estado da instância, selecione Interromper instância.
-
Para alterar a configuração de vCPU, selecione Alterar opções de CPU em Configurações de instância no menu Ações. Esse procedimento abre a página Alterar opções de CPU.
-
Selecione uma das seguintes opções de CPU para alterar a configuração da instância.
- Usar as opções de CPU padrão
-
Essa opção redefine sua instância para o número padrão de vCPUs para o tipo de instância. O padrão é executar todos os threads para todos os núcleos da CPU.
- Especificar opções de CPU
-
Essa opção permite a configuração do número de vCPUs em execução na sua instância.
-
Se você escolher Especificar opções de CPU, os campos vCPUs ativas ficarão visíveis.
-
Utilize o primeiro seletor para configurar o número de threads para cada núcleo de CPU. Para desabilitar o multithreading simultâneo, selecione 1.
-
Utilize o segundo seletor para configurar o número de CPUs que serão executadas na sua instância.
Os campos a seguir serão atualizados dinamicamente à medida que você fizer alterações nos seletores de opções da CPU:
-
vCPUs ativas: o número total de núcleos de CPU multiplicado pelos threads por núcleo, com base nas seleções realizadas. Por exemplo, caso tenha selecionado 2 threads e 4 núcleos, isso equivaleria a 8 vCPUs.
-
Total de vCPUs: o número máximo de vCPUs para o tipo de instância. Por exemplo, para um tipo de instância m6i.4xlarge, são 16 vCPUs (8 núcleos executando 2 threads cada).
-
Para aplicar suas atualizações, selecione Alterar.
- AWS CLI
-
Siga este procedimento para alterar o número de vCPUs ativas para sua instância usando o AWS CLI.
Use o comando modify-instance-cpu-options e especifique o número de núcleos de CPU que são executados no parâmetro --core-count e o número de threads executados por núcleo no parâmetro --threads-per-core.
Os exemplos a seguir mostram duas configurações possíveis em um tipo de instância m6i.4xlarge para executar 8 vCPUs na instância especificada. O padrão para esse tipo de instância é 16 vCPUs (8 núcleos executando 2 threads cada).
Exemplo 1: execute 4 núcleos de CPU com 2 threads por núcleo, totalizando 8 vCPUs.
aws ec2 modify-instance-cpu-options \
--instance-id i-1234567890abcdef0 \
--core-count=4 \
--threads-per-core=2
Exemplo 2: desabilite o multithreading simultâneo alterando o número de threads executados por núcleo para 1. A configuração resultante também executa um total de 8 vCPUs (8 núcleos de CPU com 1 thread por núcleo).
aws ec2 modify-instance-cpu-options \
--instance-id 1234567890abcdef0 \
--core-count=8 \
--threads-per-core=1
- PowerShell
-
Para alterar o número de vCPUs ativas para uma instância
Use o cmdlet Edit-EC2InstanceCpuOption e especifique o número de núcleos de CPU em execução no parâmetro -CoreCount e o número de threads executados por núcleo no parâmetro ThreadsPerCore.
Exemplo 1: execute 4 núcleos de CPU com 2 threads por núcleo, totalizando 8 vCPUs.
Edit-EC2InstanceCpuOption `
-InstanceId 'i-1234567890abcdef0' `
-CoreCount 4 `
-ThreadsPerCore 2
Exemplo 2: desabilite o multithreading simultâneo alterando o número de threads executados por núcleo para 1. A configuração resultante também executa um total de 8 vCPUs (8 núcleos de CPU com 1 thread por núcleo).
Edit-EC2InstanceCpuOption `
-InstanceId 'i-1234567890abcdef0' `
-CoreCount 8 `
-ThreadsPerCore 1