指定 Amazon EC2 執行個體的 CPU 選項 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

指定 Amazon EC2 執行個體的 CPU 選項

您可以在執行個體啟動期間或之後指定 CPU 選項。

停用同時多執行緒

若要停用也稱為超執行緒的同時多執行緒 (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 命令,並為 --cpu-options 參數指定 1 ThreadsPerCore 的值。在 CoreCount 指定 CPU 核心數目。在本範例中,若要指定 r7i.4xlarge 執行個體的預設 CPU 核心計數,請指定值 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
在執行個體啟動期間停用 SMT

使用 New-EC2Instance 命令,並為 -CpuOptions 參數指定 1 ThreadsPerCore 的值。在 CoreCount 指定 CPU 核心數目。在本範例中,若要指定 r7i.4xlarge 執行個體的預設 CPU 核心計數,請指定值 8

New-EC2Instance ` -ImageId 'ami-0abcdef1234567890' ` -InstanceType 'r7i.4xlarge' ` -CpuOptions @{CoreCount=8; ThreadsPerCore=1} ` -KeyName 'my-key-pair'
注意

若要停用現有執行個體的 SMT,請依照 變更 EC2 執行個體的 CPU 選項 中所示的流程操作,並將每個核心執行的執行緒數量變更為 1

啟動時指定 vCPU 的自訂數量

當您從 EC2 主控台或 AWS CLI啟動執行個體時,您可以自訂 CPU 核心數量和每個核心的執行緒數量。本節中的範例使用具有下列預設設定的r5.4xlarge 執行個體類型:

  • CPU 核心:8

  • 每核心執行緒:2

執行個體啟動時,預設會有執行個體類型可用的 vCPUs 數量上限。對於此執行個體類型,總共 16 個 vCPU (8 個核心,每個執行 2 個執行緒)。如需有關此執行個體類型的詳細資訊,請參閱 記憶體最佳化執行個體

以下範例啟動有 4 個 vCPU 的 r5.4xlarge 執行個體。

Console
在執行個體啟動期間指定 vCPU 的自訂數量
  1. 遵照 使用主控台中的啟動執行個體精靈,啟動 EC2 執行個體 程序並視需要設定執行個體。

  2. 展開進階詳細資訊,然後選取指定 CPU 選項核取方塊。

  3. 指定 2 個 CPU 核心和每核心 2 個執行緒,即可得到 4 個 vCPU,如下所示:

    • 核心計數中,選擇 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-0abcdef1234567890 \ --instance-type r7i.4xlarge \ --cpu-options "CoreCount=2,ThreadsPerCore=2" \ --key-name my-key-pair

或者,指定 4 個 CPU 核心和每核心 1 個執行緒 (停用 SMT),也可以產生 4 個 vCPU:

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r7i.4xlarge \ --cpu-options "CoreCount=4,ThreadsPerCore=1" \ --key-name my-key-pair
PowerShell
在執行個體啟動期間指定 vCPU 的自訂數量

使用 New-EC2Instance 命令,並在 -CpuOptions 參數中指定 CPU 核心數量和執行緒數量。您可以指定 2 個 CPU 核心和每核心 2 個執行緒,如此便能得到 4 個 vCPU。

New-EC2Instance ` -ImageId 'ami-0abcdef1234567890' ` -InstanceType 'r7i.4xlarge' ` -CpuOptions @{CoreCount=2; ThreadsPerCore=2} ` -KeyName 'my-key-pair'

或者,指定 4 個 CPU 核心和每核心 1 個執行緒 (停用 SMT),也可以產生 4 個 vCPU:

New-EC2Instance ` -ImageId 'ami-0abcdef1234567890' ` -InstanceType 'r7i.4xlarge' ` -CpuOptions @{CoreCount=4; ThreadsPerCore=1} ` -KeyName 'my-key-pair'

在啟動範本中指定 vCPU 的自訂數量

可在啟動範本中自訂執行個體的 CPU 核心數量和每個核心的執行緒數量。本節中的範例使用具有下列預設設定的r5.4xlarge 執行個體類型:

  • CPU 核心:8

  • 每核心執行緒:2

執行個體啟動時,預設會有執行個體類型可用的 vCPUs 數量上限。對於此執行個體類型,總共 16 個 vCPU (8 個核心,每個執行 2 個執行緒)。如需有關此執行個體類型的詳細資訊,請參閱 記憶體最佳化執行個體

以下範例建立的啟動範本會指定具有 4 個 vCPU 的 r5.4xlarge 執行個體的組態。

Console
在啟動範本中指定 vCPU 的自訂數量
  1. 遵照 指定參數來建立啟動範本 程序並視需要設定啟動範本。

  2. 展開進階詳細資訊,然後選取指定 CPU 選項核取方塊。

  3. 指定 2 個 CPU 核心和每核心 2 個執行緒,即可得到 4 個 vCPU,如下所示:

    • 核心計數中,選擇 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-0abcdef1234567890" }], "ImageId": "ami-0abcdef1234567890", "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-0abcdef1234567890" }], "ImageId": "ami-0abcdef1234567890", "InstanceType": "r5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":4, "ThreadsPerCore":1 } }
PowerShell
在啟動範本中指定 vCPU 的自訂數量

使用 New-EC2LaunchTemplate

New-EC2LaunchTemplate ` -LaunchTemplateName 'TemplateForCPUOptions' ` -VersionDescription 'CPUOptionsVersion1' ` -LaunchTemplateData (Get-Content -Path 'template-data.json' | ConvertFrom-Json)

變更 EC2 執行個體的 CPU 選項

由於您的需求會隨著時間發生變化,您可能想要變更現有執行個體的 CPU 選項組態。每個在執行個體上執行的執行緒都稱為虛擬 CPU (vCPU)。您可以在 Amazon EC2 主控台、 AWS CLI API 或 SDKs 中變更為現有執行個體執行的 vCPUs 數量。執行個體狀態必須是 Stopped,才能進行此變更。

Console
變更執行個體的作用中 vCPUs數量
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在左側導覽窗格中,選擇執行個體,然後選取您的執行個體。

  3. 如果執行個體正在執行,您必須先將其停止才能繼續。選擇 Instance state (執行個體狀態)Stop instance (停止執行個體)

  4. 若要變更 vCPU 組態,請選擇動作執行個體設定變更 CPU 選項

  5. 選擇下列其中一個 CPU 選項:

    • 若要將執行個體重設為其執行個體類型的預設 vCPUs 數量,請選擇使用預設 CPU 選項。預設為執行所有 CPU 核心的所有執行緒。

    • 若要設定執行個體上的 vCPUs 數量,請選擇指定 CPU 選項

  6. 如果您選擇指定 CPU 選項,則會顯示作用中 vCPUs 欄位。

    1. 使用第一個選擇器來設定每個 CPU 核心的執行緒數量。若要停用同時多執行緒,請選擇 1

    2. 使用第二個選擇器來設定執行個體CPUs 數量。

    當您變更 CPU 選項選取器時,下列欄位會動態更新:

    • 作用中 vCPU:根據您所進行的選擇,CPU 核心的數量乘以每核心執行緒。例如,如果您選取 2 個執行緒和 4 個核心,則等於 8 vCPU。

    • vCPUs 總數:執行個體類型的 vCPU 數量上限。例如,對於 m6i.4xlarge 執行個體類型,這是 16 個 vCPU (8 個核心,每個執行 2 個執行緒)。

  7. 選擇 Change (變更)

AWS CLI
變更執行個體的作用中 vCPUs數量

使用 modify-instance-cpu-options 命令,並指定--core-count參數中執行的 CPU 核心數量,以及--threads-per-core參數中每個核心執行的執行緒數量。

下列範例顯示 m6i.4xlarge 執行個體類型上兩個可能的組態,以在指定的執行個體上執行 8 個 vCPU。此執行個體類型的預設值為 16 個 vCPU (8 個核心,每個核心執行 2 個執行緒)。

範例 1:執行 4 個 CPU 核心,每個核心有 2 個執行緒,總共 8 個 vCPU。

aws ec2 modify-instance-cpu-options \ --instance-id 1234567890abcdef0 \ --core-count=4 \ --threads-per-core=2

範例 2:將每個核心執行的執行緒數量變更為 1,停用同時多執行緒。產生的組態也會執行總共 8 vCPUs (8 個 CPU 核心,每個核心 1 個執行緒)。

aws ec2 modify-instance-cpu-options \ --instance-id 1234567890abcdef0 \ --core-count=8 \ --threads-per-core=1
PowerShell
變更執行個體的作用中 vCPUs數量

使用 Edit-EC2InstanceCpuOption cmdlet,並指定-CoreCount參數中執行的 CPU 核心數量,以及ThreadsPerCore參數中每個核心執行的執行緒數量。

範例 1:執行 4 個 CPU 核心,每個核心有 2 個執行緒,總共 8 個 vCPU。

Edit-EC2InstanceCpuOption ` -InstanceId 'i-1234567890abcdef0' ` -CoreCount 4 ` -ThreadsPerCore 2

範例 2:將每個核心執行的執行緒數量變更為 1,停用同時多執行緒。產生的組態也會執行總共 8 vCPUs (8 個 CPU 核心,每個核心 1 個執行緒)。

Edit-EC2InstanceCpuOption ` -InstanceId 'i-1234567890abcdef0' ` -CoreCount 8 ` -ThreadsPerCore 1