Configuring the processor for a DB instance class in RDS for Oracle
Amazon RDS DB instance classes support Intel Hyper-Threading Technology, which enables multiple threads to run concurrently on a single Intel Xeon CPU core. Each thread is represented as a virtual CPU (vCPU) on the DB instance. A DB instance has a default number of CPU cores, which varies according to DB instance class. For example, a db.m4.xlarge DB instance class has two CPU cores and two threads per core by default—four vCPUs in total.
Note
Each vCPU is a hyperthread of an Intel Xeon CPU core.
Topics
Overview of processor configuration for RDS for Oracle
When you use RDS for Oracle, you can usually find a DB instance class that has a combination of memory and number of vCPUs to suit your workloads. However, you can also specify the following processor features to optimize your RDS for Oracle DB instance for specific workloads or business needs:
-
Number of CPU cores – You can customize the number of CPU cores for the DB instance. You might do this to potentially optimize the licensing costs of your software with a DB instance that has sufficient amounts of RAM for memory-intensive workloads but fewer CPU cores.
-
Threads per core – You can disable Intel Hyper-Threading Technology by specifying a single thread per CPU core. You might do this for certain workloads, such as high-performance computing (HPC) workloads.
You can control the number of CPU cores and threads for each core separately. You can set one or both in a request. After a setting is associated with a DB instance, the setting persists until you change it.
The processor settings for a DB instance are associated with snapshots of the DB instance. When a snapshot is restored, its restored DB instance uses the processor feature settings used when the snapshot was taken.
If you modify the DB instance class for a DB instance with nondefault processor settings, either specify default processor settings or explicitly specify processor settings at modification. This requirement ensures that you are aware of the third-party licensing costs that might be incurred when you modify the DB instance.
There is no additional or reduced charge for specifying processor features on an RDS for Oracle DB instance. You're charged the same as for DB instances that are launched with default CPU configurations.
DB instance classes that support processor configuration
You can configure the number of CPU cores and threads per core only when the following conditions are met:
-
You're configuring an RDS for Oracle DB instance. For information about the DB instance classes supported by different Oracle Database editions, see RDS for Oracle DB instance classes.
-
Your DB instance is using the Bring Your Own License (BYOL) licensing option of RDS for Oracle. For more information about Oracle licensing options, see RDS for Oracle licensing options.
-
Your DB instance doesn't belong to one of the db.r5 or db.r5b instance classes that have predefined processor configurations. These instance classes have names in the form db.r5.
instance_size.tpcthreads_per_core.memratioor db.r5b.instance_size.tpcthreads_per_core.memratio. For example, db.r5b.xlarge.tpc2.mem4x is preconfigured with 2 threads per core (tpc2) and 4x as much memory as the standard db.r5b.xlarge instance class. You can't configure the processor features of these optimized instance classes. For more information, see Supported RDS for Oracle DB instance classes.
You can use the following AWS CLI command to show the default vCPUs, cores, threads per
core, and valid numbers of cores for an instance class. Replace
in the sample command with
the name of your instance class.r7i.48xlarge
aws ec2 describe-instance-types \ --instance-typesr7i.48xlarge\ --query '{ DefaultVCPUs: InstanceTypes[0].VCpuInfo.DefaultVCpus, DefaultCores: InstanceTypes[0].VCpuInfo.DefaultCores, DefaultThreadsPerCore: InstanceTypes[0].VCpuInfo.DefaultThreadsPerCore, ValidCores: InstanceTypes[0].VCpuInfo.ValidCores }' \ --output json
In the following table, you can find the DB instance classes that support setting a number of CPU cores and CPU threads per core. You can also find the default value and the valid values for the number of CPU cores and CPU threads per core for each DB instance class.
| DB instance class | Default vCPUs | Default CPU cores | Default threads per core | Valid number of CPU cores | Valid number of threads per core |
|---|---|---|---|---|---|
| db.m6i – memory-optimized instance classes | |||||
|
db.m6i.large |
2 |
1 |
2 |
1 |
1, 2 |
|
db.m6i.xlarge |
4 |
2 |
2 |
2 |
1, 2 |
|
db.m6i.2xlarge |
8 |
4 |
2 |
2, 4 |
1, 2 |
|
db.m6i.4xlarge |
16 |
8 |
2 |
2, 4, 6, 8 |
1, 2 |
|
db.m6i.8xlarge |
32 |
16 |
2 |
2, 4, 6, 8, 10, 12, 14, 16 |
1, 2 |
|
db.m6i.12xlarge |
48 |
24 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 |
1, 2 |
|
db.m6i.16xlarge |
64 |
32 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 |
1, 2 |
|
db.m6i.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 |
|
db.m6i.32xlarge |
128 |
64 |
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, 50, 52, 54, 56, 58, 60, 62, 64 |
1, 2 |
| db.m5 – general-purpose instance classes | |||||
|
db.m5.large |
2 |
1 |
2 |
1 |
1, 2 |
|
db.m5.xlarge |
4 |
2 |
2 |
2 |
1, 2 |
|
db.m5.2xlarge |
8 |
4 |
2 |
2, 4 |
1, 2 |
|
db.m5.4xlarge |
16 |
8 |
2 |
2, 4, 6, 8 |
1, 2 |
|
db.m5.8xlarge |
32 |
16 |
2 |
2, 4, 6, 8, 10, 12, 14, 16 |
1, 2 |
|
db.m5.12xlarge |
48 |
24 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 |
1, 2 |
|
db.m5.16xlarge |
64 |
32 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 |
1, 2 |
|
db.m5.24xlarge |
96 |
48 |
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 |
| db.m5d – general-purpose instance classes | |||||
|
db.m5d.large |
2 |
1 |
2 |
1 |
1, 2 |
|
db.m5d.xlarge |
4 |
2 |
2 |
2 |
1, 2 |
|
db.m5d.2xlarge |
8 |
4 |
2 |
2, 4 |
1, 2 |
|
db.m5d.4xlarge |
16 |
8 |
2 |
2, 4, 6, 8 |
1, 2 |
|
db.m5d.8xlarge |
32 |
16 |
2 |
2, 4, 6, 8, 10, 12, 14, 16 |
1, 2 |
|
db.m5d.12xlarge |
48 |
24 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 |
1, 2 |
|
db.m5d.16xlarge |
64 |
32 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 |
1, 2 |
|
db.m5d.24xlarge |
96 |
48 |
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 |
| db.m4 – general-purpose instance classes | |||||
|
db.m4.10xlarge |
40 |
20 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20 |
1, 2 |
|
db.m4.16xlarge |
64 |
32 |
2 |
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 |
1, 2 |
| db.r7i – memory-optimized instance classes | |||||
|
db.r7i.large |
2 |
1 |
2 |
1 |
1, 2 |
|
db.r7i.xlarge |
4 |
2 |
2 |
1, 2 |
1, 2 |
|
db.r7i.2xlarge |
8 |
4 |
2 |
1, 2, 3, 4 |
1, 2 |
|
db.r7i.4xlarge |
16 |
8 |
2 |
1, 2, 3, 4, 5, 6, 7, 8 |
1, 2 |
|
db.r7i.8xlarge |
32 |
16 |
2 |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 |
1, 2 |
|
db.r7i.12xlarge |
48 |
24 |
2 |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 |
1, 2 |
|
db.r7i.16xlarge |
64 |
32 |
2 |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 |
1, 2 |
|
db.r7i.24xlarge |
96 |
48 |
2 |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 |
|