

# 为数据库实例类设置 CPU 核心数和每 CPU 核心线程数
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling"></a>

可在执行以下操作时为数据库实例类配置 CPU 核心数和每核心线程数：
+ [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)
+ [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)
+ [还原到数据库实例](USER_RestoreFromSnapshot.md)
+ [将 Amazon RDS 的数据库实例还原到指定时间](USER_PIT.md)

**注意**  
在修改数据库实例以配置 CPU 核心数或每核心线程数时，会出现短暂的中断，这与您修改实例类时的情况类似。

使用 Amazon Web Services 管理控制台、Amazon CLI 或 RDS API 设置 CPU 核心数。

## 控制台
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CON"></a>

**设置核心数**

1. 登录 Amazon Web Services 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 选择**创建数据库**。

1. 设置**实例配置**选项时：

   1. 选择**优化 CPU** 选项。

   1. 通过选择核心数来设置 **vCPU** 选项。  
![设置 OCPU 设置时的数据库创建页面](http://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/images/OCPU-screenshot.png)

1. 完成其它选择后，选择**创建数据库**。

## Amazon CLI
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CLI"></a>

**设置核心数**

1. 要使用 Amazon CLI 配置“优化 CPU”，请在命令中包含 `--processor-features` 选项。通过将 `coreCount` 和 `threadsPerCore` 设置为 `1`，指定 CPU 核心的数量。

1. 使用以下语法：

   ```
   aws rds create-db-instance \
       --engine sqlserver-ee \
       --engine-version 16.00 \
       --license-model license-included \
       --allocated-storage 300 \
       --master-username {{myuser}} \
       --master-user-password {{xxxxx}} \
       --no-multi-az \
       --vpc-security-group-ids myvpcsecuritygroup \
       --db-subnet-group-name mydbsubnetgroup \
       --db-instance-identifier my-rds-instance \
       --db-instance-class db.m7i.4xlarge \
       --processor-features "Name=coreCount,Value=6" "Name=threadsPerCore,Value=1"
   ```

**Example ：查看数据库实例类的有效处理器值**  
使用 `describe-orderable-db-instance-options` 命令可显示默认 vCPU 数、核心数和每核心线程数。例如，以下命令的输出显示用于 db.r7i.2xlarge 实例类的处理器选项。  

```
aws rds describe-orderable-db-instance-options --engine sqlserver-ee \
--db-instance-class db.r7i.2xlarge

Sample output: 
-------------------------------------------------------------
|            DescribeOrderableDBInstanceOptions             |
+-----------------------------------------------------------+
||               OrderableDBInstanceOptions                ||
|+------------------------------------+--------------------+|
||  DBInstanceClass                   |  db.r7i.2xlarge    ||
||  Engine                            |  sqlserver-ee      ||
||  EngineVersion                     |  13.00.6300.2.v1   ||
||  LicenseModel                      |  license-included  ||
||  MaxIopsPerDbInstance              |                    ||
||  MaxIopsPerGib                     |                    ||
||  MaxStorageSize                    |  64000             ||
||  MinIopsPerDbInstance              |                    ||
||  MinIopsPerGib                     |                    ||
||  MinStorageSize                    |  20                ||
||  MultiAZCapable                    |  True              ||
||  OutpostCapable                    |  False             ||
||  ReadReplicaCapable                |  True              ||
||  StorageType                       |  gp2               ||
||  SupportsClusters                  |  False             ||
||  SupportsDedicatedLogVolume        |  False             ||
||  SupportsEnhancedMonitoring        |  True              ||
||  SupportsGlobalDatabases           |  False             ||
||  SupportsIAMDatabaseAuthentication |  False             ||
||  SupportsIops                      |  False             ||
||  SupportsKerberosAuthentication    |  True              ||
||  SupportsPerformanceInsights       |  True              ||
||  SupportsStorageAutoscaling        |  True              ||
||  SupportsStorageEncryption         |  True              ||
||  SupportsStorageThroughput         |  False             ||
||  Vpc                               |  True              ||
|+------------------------------------+--------------------+|
|||                   AvailabilityZones                   |||
||+-------------------------------------------------------+||
|||                         Name                          |||
||+-------------------------------------------------------+||
|||  us-west-2a                                           |||
|||  us-west-2b                                           |||
|||  us-west-2c                                           |||
||+-------------------------------------------------------+||
|||              AvailableProcessorFeatures               |||
||+-----------------+-----------------+-------------------+||
|||  AllowedValues  |  DefaultValue   |       Name        |||
||+-----------------+-----------------+-------------------+||
|||  1,2,3,4        |  4              |  coreCount        |||
|||  1              |  1              |  threadsPerCore   |||
||+-----------------+-----------------+-------------------+||
```
此外，可以运行以下命令来获取数据库实例类处理器信息：  
+ `describe-db-instances`：显示指定数据库实例的处理器信息
+ `describe-db-snapshots`：显示指定数据库快照的处理器信息
+ `describe-valid-db-instance-modifications`：显示对指定数据库实例的处理器的有效修改
在上述命令的输出中，如果未配置“优化 CPU”，则处理器功能的值为 `null`。

**Example ：为数据库实例设置 CPU 核心数**  
以下示例通过将 CPU 核心数设置为 4 并将 threadsPerCore 设置为 1 来修改 {{mydbinstance}} 。使用 `--apply-immediately` 立即应用更改。如果要在下一个计划的维护时段内应用更改，请省略 `--apply-immediately option`。  

```
aws rds modify-db-instance \
    --db-instance-identifier {{mydbinstance}} \
    --db-instance-class db.r7i.8xlarge \
    --processor-features "Name=coreCount,Value={{4}}" "Name=threadsPerCore,Value={{1}}" \
    --apply-immediately
```

**Example ：返回到数据库实例的默认处理器设置**  
以下示例通过将 {{mydbinstance}} 返回到其默认处理器值来进行修改。  

```
aws rds modify-db-instance \
    --db-instance-identifier {{mydbinstance}} \
    --db-instance-class db.r7i.8xlarge \
    --use-default-processor-features \
    --apply-immediately
```