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