为 Amazon EC2 实例指定 CPU 选项 - Amazon Elastic Compute Cloud

为 Amazon EC2 实例指定 CPU 选项

可以在实例启动期间指定 CPU 选项。

以下示例介绍了如何在使用 EC2 控制台中的启动实例向导和 run-instances AWS CLI 命令以及 EC2 控制台中的创建启动模板页面和 create-launch-template AWS CLI 命令时指定 CPU 选项。对于 EC2 机群或竞价型实例集,您必须在启动模板中指定 CPU 选项。

以下示例适用于 r5.4xlarge 实例类型,该实例类型具有以下默认值

  • 默认 CPU 核心数:8

  • 默认每核心线程数:2

  • 默认 vCPU:16 (8 * 2)

  • 有效的 CPU 内核数:2、4、6、8

  • 有效的每核心线程数:1、2

禁用同步多线程

要禁用同步多线程(SMT)(也称为超线程),请为每个核心指定 1 个线程。

Console
在启动实例期间禁用 SMT
  1. 按照 使用控制台中的启动实例向导来启动 EC2 实例 程序进行操作并根据需要配置实例。

  2. 展开高级详细信息,然后选中指定 CPU 选项复选框。

  3. 对于 Core count (内核数),选择所需的 CPU 内核数量。在此示例中,要为 r5.4xlarge 实例指定默认 CPU 内核数,请选择 8

  4. 要禁用 SMT,请为每核心线程数选择 1

  5. Summary(摘要)面板中查看实例配置,然后选择 Launch instance(启动实例)。有关更多信息,请参阅 使用控制台中的启动实例向导来启动 EC2 实例

AWS CLI
在启动实例期间禁用 SMT

使用 run-instances AWS CLI 命令,并将 1 参数的 ThreadsPerCore 值指定为 --cpu-options。对于 CoreCount,请指定 CPU 内核的数量。在此示例中,要为 r5.4xlarge 实例指定默认 CPU 内核数,请指定值 8

aws ec2 run-instances \ --image-id ami-1a2b3c4d \ --instance-type r5.4xlarge \ --cpu-options "CoreCount=8,ThreadsPerCore=1" \ --key-name MyKeyPair

在启动时指定自定义 vCPU 数

您可以为实例自定义 CPU 内核数和每个内核的线程数。

以下示例启动一个具有 4 个 vCPU 的 r5.4xlarge 实例。

Console
在实例启动期间指定自定义 vCPU 数量
  1. 按照 使用控制台中的启动实例向导来启动 EC2 实例 程序进行操作并根据需要配置实例。

  2. 展开高级详细信息,然后选中指定 CPU 选项复选框。

  3. 要获得 4 个 vCPU,请指定 2 个 CPU 内核并为每个内核指定 2 个线程,如下所示:

    • 对于内核数,选择 2

    • 对于 Threads per core (每内核线程数),选择 2

  4. Summary(摘要)面板中查看实例配置,然后选择 Launch instance(启动实例)。有关更多信息,请参阅 使用控制台中的启动实例向导来启动 EC2 实例

AWS CLI
在实例启动期间指定自定义 vCPU 数量

使用 run-instances AWS CLI 命令,并在 --cpu-options 参数中指定 CPU 内核数和线程数。可以指定 2 个 CPU 核心并为每个核心指定 2 个线程,从而获得 4 个 vCPU。

aws ec2 run-instances \ --image-id ami-1a2b3c4d \ --instance-type r5.4xlarge \ --cpu-options "CoreCount=2,ThreadsPerCore=2" \ --key-name MyKeyPair

或者,也可以通过指定 4 个 CPU 核心并为每个核心指定 1 个线程(禁用 SMT)来获得 4 个 vCPU:

aws ec2 run-instances \ --image-id ami-1a2b3c4d \ --instance-type r5.4xlarge \ --cpu-options "CoreCount=4,ThreadsPerCore=1" \ --key-name MyKeyPair

在启动模板中指定自定义 vCPU 数

您可以在启动模板中自定义实例的 CPU 核心数和每个核心的线程数。

以下示例创建了一个启动模板,该模板指定具有 4 个 vCPU 的 r5.4xlarge 实例的配置。

Console
要在启动模板中指定自定义 vCPU 数
  1. 按照 通过指定参数创建启动模板 程序进行操作并根据需要配置启动模板。

  2. 展开高级详细信息,然后选中指定 CPU 选项复选框。

  3. 要获得 4 个 vCPU,请指定 2 个 CPU 内核并为每个内核指定 2 个线程,如下所示:

    • 对于内核数,选择 2

    • 对于 Threads per core (每内核线程数),选择 2

  4. 摘要面板中查看实例配置,然后选择创建启动模板。有关更多信息,请参阅 在 Amazon EC2 启动模板中存储实例启动参数

AWS CLI
要在启动模板中指定自定义 vCPU 数

使用 create-launch-template AWS CLI 命令,并在 CpuOptions 参数中指定 CPU 核心数和线程数。可以指定 2 个 CPU 核心并为每个核心指定 2 个线程,从而获得 4 个 vCPU。

aws ec2 create-launch-template \ --launch-template-name TemplateForCPUOptions \ --version-description CPUOptionsVersion1 \ --launch-template-data file://template-data.json

下面是一个示例 JSON 文件,其中包含启动模板数据,包括本示例的实例配置的 CPU 选项。

{ "NetworkInterfaces": [{ "AssociatePublicIpAddress": true, "DeviceIndex": 0, "Ipv6AddressCount": 1, "SubnetId": "subnet-7b16de0c" }], "ImageId": "ami-8c1be5f6", "InstanceType": "r5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":2, "ThreadsPerCore":2 } }

或者,也可以通过指定 4 个 CPU 核心并为每个核心指定 1 个线程(禁用 SMT)来获得 4 个 vCPU:

{ "NetworkInterfaces": [{ "AssociatePublicIpAddress": true, "DeviceIndex": 0, "Ipv6AddressCount": 1, "SubnetId": "subnet-7b16de0c" }], "ImageId": "ami-8c1be5f6", "InstanceType": "r5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":4, "ThreadsPerCore":1 } }