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.
- Console
-
Para alterar o número de vCPUs ativas para uma instância
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação esquerdo, selecione Instâncias e selecione sua instância.
-
Caso a instância esteja em execução, é necessário interrompê-la antes de continuar. Escolha Estado da instância e Parar instância.
-
Para alterar a configuração da vCPU, selecione Ações, Configurações da instância, Alterar opções da CPU.
-
Escolha uma das seguintes opções de CPU:
-
Para redefinir a instância para o número padrão de vCPUs do seu tipo de instância, escolha Usar opções de CPU padrão. O padrão é executar todos os threads para todos os núcleos da CPU.
-
Para configurar o número de vCPUs na instância, escolha Especificar opções de CPU.
-
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 para sua instância.₢
Os campos a seguir são atualizados dinamicamente à medida que você faz 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).
-
Escolha Alterar.
- AWS CLI
-
Para alterar o número de vCPUs ativas para uma instância
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 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