

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

# 指定 Amazon EC2 執行個體的 CPU 選項
<a name="instance-specify-cpu-options"></a>

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

**Topics**
+ [停用同時多執行緒](#cpu-options-disable-simultaneous-multithreading)
+ [啟動時指定 vCPU 的自訂數量](#cpu-options-customize-vCPUs-launch)
+ [在啟動範本中指定 vCPU 的自訂數量](#cpu-options-customize-vCPUs-launch-template)
+ [變更 EC2 執行個體的 CPU 選項](#change-vCPUs-after-launch)

## 停用同時多執行緒
<a name="cpu-options-disable-simultaneous-multithreading"></a>

若要停用也稱為超執行緒的同時多執行緒 (SMT)，請為每個核心指定 1 個執行緒。

------
#### [ Console ]

**在執行個體啟動期間停用 SMT**

1. 遵照 [使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md) 程序並視需要設定執行個體。

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

1. 針對 **Core count (核心計數)**，選擇所需的 CPU 核心數量。在本範例中，若要指定 `r5.4xlarge` 執行個體的預設 CPU 核心計數，請選擇 `8`。

1. 若要停用 SMT，請在**每核心執行緒**中選擇 **1**。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**在執行個體啟動期間停用 SMT**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令，為 `-CpuOptions` 參數的 `ThreadsPerCore` 指定值 `1`。在 `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 選項](#change-vCPUs-after-launch) 中所示的流程操作，並將每個核心執行的執行緒數量變更為 `1`。

## 啟動時指定 vCPU 的自訂數量
<a name="cpu-options-customize-vCPUs-launch"></a>

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

執行個體啟動時，預設會有執行個體類型可用的 vCPUs 數量上限。對於此執行個體類型，總共 16 個 vCPU (8 個核心，每個執行 2 個執行緒)。如需有關此執行個體類型的詳細資訊，請參閱 [記憶體最佳化執行個體](cpu-options-supported-instances-values.md#cpu-options-mem-optimized)。

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

------
#### [ Console ]

**在執行個體啟動期間指定 vCPU 的自訂數量**

1. 遵照 [使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md) 程序並視需要設定執行個體。

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

1. 指定 2 個 CPU 核心和每核心 2 個執行緒，即可得到 4 個 vCPU，如下所示：
   + 在**核心計數**中，選擇 **2**。
   + 針對 **Threads per core (每核心執行緒)**，選擇 **2**。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**在執行個體啟動期間指定 vCPU 的自訂數量**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令，在 `-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 的自訂數量
<a name="cpu-options-customize-vCPUs-launch-template"></a>

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

執行個體啟動時，預設會有執行個體類型可用的 vCPUs 數量上限。對於此執行個體類型，總共 16 個 vCPU (8 個核心，每個執行 2 個執行緒)。如需有關此執行個體類型的詳細資訊，請參閱 [記憶體最佳化執行個體](cpu-options-supported-instances-values.md#cpu-options-mem-optimized)。

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

------
#### [ Console ]

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

1. 遵照 [指定參數來建立啟動範本](create-launch-template.md#create-launch-template-define-parameters) 程序並視需要設定啟動範本。

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

1. 指定 2 個 CPU 核心和每核心 2 個執行緒，即可得到 4 個 vCPU，如下所示：
   + 在**核心計數**中，選擇 **2**。
   + 針對 **Threads per core (每核心執行緒)**，選擇 **2**。

1. 在**摘要**面板中，檢閱執行個體組態，然後選擇**建立啟動範本**。如需詳細資訊，請參閱[將執行個體啟動參數存放在 Amazon EC2 啟動範本中](ec2-launch-templates.md)。

------
#### [ AWS CLI ]

**在啟動範本中指定 vCPU 的自訂數量**  
使用 [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2LaunchTemplate.html)。

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

------

## 變更 EC2 執行個體的 CPU 選項
<a name="change-vCPUs-after-launch"></a>

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

若要檢視主控台或命令列步驟，請選取符合您環境的標籤。如需 API 請求和回應資訊，請參閱「Amazon EC2 API 參考」**中的 [ModifyInstanceCpuOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCpuOptions.html)。

------
#### [ Console ]

請依照此程序操作，從 AWS 管理主控台變更執行個體的作用中 vCPU 數量。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中選擇 **(執行個體)**。這會開啟為目前 AWS 區域定義的執行個體清單。

1. 從**執行個體**清單中，選取執行個體。或者，您可以選取執行個體連結以開啟執行個體詳細資訊頁面。

1. 如果執行個體正在執行，您必須先將其停止才能繼續。從**執行個體狀態**功能表中，選擇**停止執行個體**。

1. 若要變更 vCPU 組態，請從**動作**功能表的**執行個體設定**中，選擇**變更 CPU 選項**。這會開啟**變更 CPU 選項**頁面。

1. 選擇下列其中一個 CPU 選項，以變更執行個體的組態。  
**使用預設 CPU 選項**  
此選項會將執行個體重設為執行個體類型的預設 vCPU 數量。預設為執行所有 CPU 核心的所有執行緒。  
**指定 CPU 選項**  
此選項會啟用在執行個體上執行的 vCPUs 數量組態。

1. 若您選擇**指定 CPU 選項**，則會顯示**作用中 vCPU** 欄位。
   + 使用第一個選擇工具設定為每個 CPU 核心執行的執行緒數量。若要停用同步多執行緒，請選擇 `1`。
   + 使用第二個選擇工具會設定為執行個體執行的 CPU 數量。

   當您對 CPU 選項選擇工具進行變更時，以下欄位會動態更新。
   + **作用中 vCPU**：根據您所進行的選擇，CPU 核心的數量乘以每核心執行緒。例如，如果您選取 2 個執行緒和 4 個核心，則等於 8 vCPU。
   + **vCPUs 總數**：執行個體類型的 vCPU 數量上限。例如，對於 `m6i.4xlarge` 執行個體類型，這是 16 個 vCPU (8 個核心，每個執行 2 個執行緒)。

1. 若要套用您的更新，請選擇**變更**。

------
#### [ AWS CLI ]

請依照此程序操作，從 AWS CLI變更執行個體的作用中 vCPU 數量。

使用 [modify-instance-cpu-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-cpu-options.html) 命令，並指定 `--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 i-1234567890abcdef0 \

    --core-count=4 \
    --threads-per-core=2
```

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

```
aws ec2 modify-instance-cpu-options \
    --instance-id 1234567890abcdef0 \
    --core-count=8 \
    --threads-per-core=1
```

------
#### [ PowerShell ]

**變更執行個體的作用中 vCPU 數量**  
使用 [Edit-EC2InstanceCpuOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceCpuOption.html) cmdlet 命令，並指定 `-CoreCount` 參數中執行的 CPU 核心數量，以及 `ThreadsPerCore` 參數中每個核心執行的執行緒數量。

**範例 1：**執行 4 個 CPU 核心，每個核心有 2 個執行緒，總共 8 個 vCPU。

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

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

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

------