Amazon Elastic Compute Cloud
Windows 实例用户指南

优化 CPU 选项

Amazon EC2 实例支持 Intel 超线程技术,该技术可使多个线程在一个 Intel Xeon CPU 核心上并发运行。每个线程都表示为实例上的一个虚拟 CPU (vCPU)。实例具有默认数量的 CPU 核心,根据实例类型而异。例如,默认情况下,m5.xlarge 实例类型有两个 CPU 核心,每个核心有两个线程 — 共四个 vCPU。

注意

除 T2 实例外,每个 vCPU 都是 Intel Xeon CPU 核心的超线程。

在大多数情况下,都有一个 Amazon EC2 实例类型,它具有适合您工作负载的内存和 vCPU 数量组合。但是,您可以指定以下 CPU 选项来针对特定工作负载或业务需求优化实例:

  • CPU 核心数:您可以自定义实例的 CPU 核心数。也许可以通过这种方式让实例拥有适合内存密集型工作负载的充足内存,同时减少 CPU 核心数,从而优化您的软件的许可成本。

  • 每核心线程数:您可以通过为每个 CPU 核心指定一个线程来禁用 Intel 超线程技术。也许可以为特定工作负载 (例如高性能计算 (HPC) 工作负载) 执行该操作。

可以在实例启动期间指定上述 CPU 选项。指定 CPU 选项不会增加或减少费用。收费标准与使用默认 CPU 选项启动的实例相同。

指定 CPU 选项的规则

要为您的实例指定 CPU 选项,请注意以下规则:

  • 目前只支持使用 AWS CLI、AWS 开发工具包或 Amazon EC2 API 调整 CPU 选项。

  • CPU 选项只能在实例启动期间指定,启动后无法修改。

  • 启动实例时,必须在请求中指定 CPU 核心数和每核心线程数。有关示例,请参阅 指定实例的 CPU 选项

  • 实例的 vCPU 总数等于 CPU 核心数乘以每核心线程数。要指定自定义数量的 vCPU,必须为实例类型指定有效的 CPU 核心数和每核心线程数。不能超出实例的默认 vCPU 数量。有关更多信息,请参阅 每种实例类型的 CPU 核心数和每 CPU 核心线程数

  • 要禁用 Intel 超线程技术,请为每个核心指定一个线程。

  • 如果更改了现有实例的实例类型,CPU 选项将自动更改为新实例类型的默认 CPU 选项。

  • 停止、启动或重启实例后,仍将保留指定的 CPU 选项。

每种实例类型的 CPU 核心数和每 CPU 核心线程数

下表列出了支持指定 CPU 选项的实例类型。对于每种类型,该表显示了默认的和支持的 CPU 核心数及每核心线程数。

加速计算实例

实例类型 默认 vCPU 默认 CPU 核心数 默认每核心线程数 有效的 CPU 核心数 有效的每核心线程数
p2.xlarge 4 2 2 1、2 1、2
p2.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
p2.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
p3.2xlarge 8 4 2 1、2、3、4 1、2
p3.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
p3.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
g3.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
g3.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
g3.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
f1.2xlarge 8 4 2 1、2、3、4 1、2
f1.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2

计算优化型实例

实例类型 默认 vCPU 默认 CPU 核心数 默认每核心线程数 有效的 CPU 核心数 有效的每核心线程数
c4.large 2 1 2 1 1、2
c4.xlarge 4 2 2 1、2 1、2
c4.2xlarge 8 4 2 1、2、3、4 1、2
c4.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
c4.8xlarge 36 18 2 2、4、6、8、10、12、14、16、18 1、2
c5.large 2 1 2 1 1、2
c5.xlarge 4 2 2 2 1、2
c5.2xlarge 8 4 2 2、4 1、2
c5.4xlarge 16 8 2 2、4、6、8 1、2
c5.9xlarge 36 18 2 2、4、6、8、10、12、14、16、18 1、2
c5.18xlarge 72 36 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36 1、2
c5d.large 2 1 2 1 1、2
c5d.xlarge 4 2 2 2 1、2
c5d.2xlarge 8 4 2 2、4 1、2
c5d.4xlarge 16 8 2 2、4、6、8 1、2
c5d.9xlarge 36 18 2 2、4、6、8、10、12、14、16、18 1、2
c5d.18xlarge 72 36 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36 1、2

通用实例

实例类型 默认 vCPU 默认 CPU 核心数 默认每核心线程数 有效的 CPU 核心数 有效的每核心线程数
m5.large 2 1 2 1 1、2
m5.xlarge 4 2 2 2 1、2
m5.2xlarge 8 4 2 2、4 1、2
m5.4xlarge 16 8 2 2、4、6、8 1、2
m5.12xlarge 48 24 2 2、4、6、8、10、12、14、16、18、20、22、24 1、2
m5.24xlarge 96 48 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 1、2
m5d.large 2 1 2 1 1、2
m5d.xlarge 4 2 2 2 1、2
m5d.2xlarge 8 4 2 2、4 1、2
m5d.4xlarge 16 8 2 2、4、6、8 1、2
m5d.12xlarge 48 24 2 2、4、6、8、10、12、14、16、18、20、22、24 1、2
m5d.24xlarge 96 48 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 1、2

内存优化型实例

实例类型 默认 vCPU 默认 CPU 核心数 默认每核心线程数 有效的 CPU 核心数 有效的每核心线程数
r4.large 2 1 2 1 1、2
r4.xlarge 4 2 2 1、2 1、2
r4.2xlarge 8 4 2 1、2、3、4 1、2
r4.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
r4.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
r4.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
r5.large 2 1 2 1 1、2
r5.xlarge 4 2 2 2 1、2
r5.2xlarge 8 4 2 2、4 1、2
r5.4xlarge 16 8 2 2、4、6、8 1、2
r5.12xlarge 48 24 2 2、4、6、8、10、12、14、16、18、20、22、24 1、2
r5.24xlarge 96 48 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 1、2
r5d.large 2 1 2 1 1、2
r5d.xlarge 4 2 2 2 1、2
r5d.2xlarge 8 4 2 2、4 1、2
r5d.4xlarge 16 8 2 2、4、6、8 1、2
r5d.12xlarge 48 24 2 2、4、6、8、10、12、14、16、18、20、22、24 1、2
r5d.24xlarge 96 48 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 1、2
x1.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
x1.32xlarge 128 64 2 4、8、12、16、20、24、28、32、36、40、44、48、52、56、60、64 1、2
x1e.xlarge 4 2 2 1、2 1、2
x1e.2xlarge 8 4 2 1、2、3、4 1、2
x1e.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
x1e.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
x1e.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
x1e.32xlarge 128 64 2 4、8、12、16、20、24、28、32、36、40、44、48、52、56、60、64 1、2
z1d.large 2 1 2 1 1、2
z1d.xlarge 4 2 2 2 1、2
z1d.2xlarge 8 4 2 2、4 1、2
z1d.3xlarge 12 6 2 2、4、6 1、2
z1d.6xlarge 24 12 2 2、4、6、8、10、12 1、2
z1d.12xlarge 48 24 2 2、4、6、8、10、12、14、16、18、20、22、24 1、2

存储优化型实例

实例类型 默认 vCPU 默认 CPU 核心数 默认每核心线程数 有效的 CPU 核心数 有效的每核心线程数
d2.xlarge 4 2 2 1、2 1、2
d2.2xlarge 8 4 2 1、2、3、4 1、2
d2.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
d2.8xlarge 36 18 2 2、4、6、8、10、12、14、16、18 1、2
h1.2xlarge 8 4 2 1、2、3、4 1、2
h1.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
h1.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
h1.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2
i3.large 2 1 2 1 1、2
i3.xlarge 4 2 2 1、2 1、2
i3.2xlarge 8 4 2 1、2、3、4 1、2
i3.4xlarge 16 8 2 1、2、3、4、5、6、7、8 1、2
i3.8xlarge 32 16 2 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16 1、2
i3.16xlarge 64 32 2 2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32 1、2

指定实例的 CPU 选项

可以在实例启动期间指定 CPU 选项。以下示例适用于 r4.4xlarge 实例类型,该实例类型具有以下默认值

  • 默认 CPU 核心数:8

  • 默认每核心线程数:2

  • 默认 vCPU:16 (8 * 2)

  • 有效的 CPU 核心数:1、2、3、4、5、6、7、8

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

在实例启动期间禁用 Intel 超线程技术

  • 使用 run-instances AWS CLI 命令并将 --cpu-options 参数的 ThreadsPerCore 值指定为 1。对于 CoreCount,指定该实例类型的默认 CPU 核心数 (本例中为 r4.4xlarge 实例,因此指定 8)。

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

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

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

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

    aws ec2 run-instances --image-id ami-1a2b3c4d --instance-type r4.4xlarge --cpu-options "CoreCount=3,ThreadsPerCore=2" --key-name MyKeyPair
  2. 或者,也可以通过指定六个 CPU 核心和为每个核心指定一个线程 (禁用超线程) 来获得六个 vCPU:

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

查看实例的 CPU 选项

可以通过描述实例来查看现有实例的 CPU 选项。

使用命令行查看实例的 CPU 选项

  • 使用 describe-instances AWS CLI 命令。

    aws ec2 describe-instances --instance-ids i-123456789abcde123
    ... "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": "ec2-198-51-100-5.eu-central-1.compute.amazonaws.com", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2018-05-08T13:40:33.000Z", "PublicIpAddress": "198.51.100.5", "PrivateIpAddress": "172.31.2.206", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "CpuOptions": { "CoreCount": 34, "ThreadsPerCore": 1 }, "StateTransitionReason": "", ...

    在返回的输出中,CoreCount 字段指示实例的核心数。ThreadsPerCore 字段指示每核心线程数。

或者,也可以连接实例并使用任务管理器工具 (例如 ) 查看实例的 CPU 信息。

可以使用 AWS Config 记录、评估、审计实例的配置更改,包括终止的实例。有关更多信息,请参阅 AWS Config Developer Guide 中的 AWS Config 入门