Previous Next JavaScript must be enabled to correctly display this content

## 15 Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

Use CPU pools to manage CPU resources on Oracle Database Appliance bare metal and KVM deployments.

- About CPU Pools
  CPU pools enable management of CPU resources on Oracle Database Appliance on both bare metal and KVM deployments. There are three types of CPU pools, that is, BM, VM, and DB system.
- Creating a CPU Pool in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to create a CPU pool in a bare metal or KVM deployment.
- Remapping CPU Pools in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to remap CPU pools in a bare metal or KVM deployment.
- Viewing CPU Pools in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to view all CPU pools or details about a CPU pool in a bare metal or KVM deployment.
- Modifying a CPU Pool in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to modify a CPU pool in a bare metal or KVM deployment.
- Deleting a CPU Pool in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to delete a CPU pool in a bare metal or KVM deployment.
- Viewing CPU Pool Audit Records in a Bare Metal or KVM Deployment
  Use ODACLI commands or the Browser User Interface to view CPU pool audit records in a bare metal or KVM deployment.
- About Over-Subscribed CPU Pools
  Configure virtual machines so that they do not subscribe to more CPU resources than the resources available in CPU pools.

### About CPU Pools

CPU pools enable management of CPU resources on Oracle Database Appliance on both bare metal and KVM deployments. There are three types of CPU pools, that is, BM, VM, and DB system.

Use the BM CPU pool to ensure that the database on a bare metal host runs exclusively on the CPU lists specified in the CPU pool. All Oracle processes are bound to the CPUs in this CPU pool and run only on these CPUs. The bare metal CPU pool is assigned to database by updating the `init.ora` parameter `processor_group_name`.

Use the VM CPU pools to cage and manage CPU resource allocations to workloads for virtual machines. Workloads are isolated by creating CPU pools and assigning or pinning virtual machines to a specific CPU pool. When you pin a virtual machine to a CPU pool, you ensure that the virtual machine uses CPUs in only that CPU pool.

The DB system CPU pool is similar to the VM CPU pool, but it only applies to a DB system.

Resources in CPU pools cannot overlap, that is, CPU pools cannot share CPUs. But one CPU pool can be assigned to multiple databases (BM CPU pool), or VMs (VM CPU pools), or DB systems (shared DB system CPU pools).

Oracle Database Appliance provides ODACLI commands to create, update, modify, and delete CPU pools.

By default, the first core of the socket is reserved and cannot be used by the VM and DB system CPU pools for optimal performance. This behavior is available from release 19.12 and later when NUMA is enabled. If you want to use the first core of the socket in your CPU pool, then use the `--use-reserved-cores` option to enable use of the first core of socket for VM and DB system CPU pools.

About Bare Metal CPU Pools

For new databases, you can attach the new CPU pool using the `create-database` command. For existing databases, use the `modify-database` command to attach the CPU pool to the database. Restart the database manually for changes to take effect. Clone, irestore and recover database operations will also try to use the same CPU pool if the CPU pool is used by the source database. Specify the `--cpupool` option to use the new CPU pool. The standby database uses the CPU pool configured for the primary database. Specify the `--cpupool` option in the `irestore-database` command when restoring the backup to the standby site if you want to use a separate CPU pool on the standby site. For more details about the command syntax, see the Oracle Database Appliance Command Line Interface chapter in this guide.

About VM CPU Pools

For new VMs, you can attach the new CPU pool using the `create-vm` command. For existing VMs, use the `modify-vm` command to attach or update the CPU pool. Use the `--live` option to apply the changes to a running VM, and use the `--config` parameter to persist the change. For more details about the command syntax, see the Oracle Database Appliance Command Line Interface chapter in this guide.

About DB System CPU Pools

Creating a DB system automatically creates an internal DB system CPU pool associated with this DB system. The internal DB system CPU pool is created and managed internally. It cannot be created, modified, or deleted manually. Starting with Oracle Database Appliance release 19.11, you can create a new type of shared DB system CPU pool which can be shared among DB systems. For more details, see the topic Managing Shared CPU Pool with Database System in a KVM Deployment in this guide.

About Audit Records for CPU Pools

CPU pool operations history are recorded in audit records metadata and system log for audit purposes. The CPU pool changes include create, modify, delete operations, and attach and detach operations from VMs and databases. The CPU pool audit records can be queried using `odacli list-auditrecords` and `odacli describe-auditrecord` commands but they can not be changed or deleted. For more details about the command syntax, see the Oracle Database Appliance Command Line Interface chapter in this guide.

Understanding the Effect of Changing the CPU Cores on CPU Pool Allocation

You may have changed the CPU core count on Oracle Database Appliance using the `odacli modify-cpucore` command. You must assign cores in multiples of two, with a minimum of two cores. If you change the CPU core count, then you can subsequently only increase the CPU core count.

If you change the CPU core count in an Oracle Database Appliance environment which has CPU pools, then the following behavior is seen:

- `odacli create-cpupool` and `odacli modify-cpupool` will always select the online CPUs. Therefore, on both bare metal and KVM deployments, any CPU pool created after running the `odacli modify-cpucore` command, will select from the available online CPUs.
- For existing CPU pools on bare metal and KVM deployments, some CPUs can become offline when you run the `odacli modify-cpucore` command. Check the CPU pools for any offline CPUs using the `odacli describe-cpupool` command. You can then update the CPU pool to use available ONLINE CPUs by using the `odacli modify-cpupool` command.
- If the databases use a CPU pool and some CPUs become offline, then use the `odacli modify-cpupool` command to update the CPU pool. Restart the databases to use the updated CPU pool.

Managing Shared CPU Pool with DB System in a KVM Deployment
Oracle Database Appliance Command-Line Interface

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Creating a CPU Pool in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to create a CPU pool in a bare metal or KVM deployment.

Using ODACLI to Create a CPU Pool

Use the command `odacli create-cpupool` to create a CPU pool.

Create a VM CPU pool named `cpupool1` with 6 cores associated to it.

    # odacli create-cpupool -n cpupool1 -c 6 -vm

Using Browser User Interface to Create a CPU Pool

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Appliance tab.
3. Click CPU Pool to display the CPU Pool page.
4. Click Create CPU Pool.
5. In the Create CPU Pool page, specify the following:
   - CPU Pool Name: Name of the CPU pool
   - CPU Pool Type: Specify if the CPU pool is for bare metal or virtual system.
   - Number of CPU Cores: Number of CPU cores allocated to the pool
   - Socket to Use: Specify the sockets to use for the CPU pool.
   - Configure on: For high-availability deployments, select the nodes where you want to configure the CPU pool.
   - Use Reserved CPU Cores: Select this option to use reserved CPU cores.
6. Click Create.
7. When you submit the job, the job ID and a link to the job appears. Click the link to display the job status and details.
8. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command `odacli describe-job` with the job ID.

odacli modify-dbsystem
odacli modify-vm
Remapping CPU Pools in a Bare Metal or KVM Deployment

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Remapping CPU Pools in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to remap CPU pools in a bare metal or KVM deployment.

Using ODACLI to Remap CPU Pools

When you patch the bare metal system to Oracle Database Appliance release 19.12 and later, NUMA is enabled after patching. Then, use the command `odacli remap-cpupools` to remap CPU pools.

See the topic About Enabling NUMA on Oracle Database Appliance for more information.

Using Browser User Interface to Remap CPU Pools

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Appliance tab.
3. Click CPU Pool to display the CPU Pools page.
4. Click Remap CPU Pool on the page. This will remap all CPU pools for NUMA allocation.
5. In the confirmation dialog, select Force Run if you want to force the remap operation. Select Use Reserved CPU Cores to use reserved CPU cores.
6. Click Yes to confirm the action.
7. When you submit the job, the job ID and a link to the job appears. Click the link to display the job status and details.
8. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command `odacli describe-job` with the job ID.

odacli modify-dbsystem
odacli modify-vm
odacli create-cpupool

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Viewing CPU Pools in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to view all CPU pools or details about a CPU pool in a bare metal or KVM deployment.

Using ODACLI to View CPU Pools

The command `odacli describe-cpupool` displays details about a CPU pool. Use the command `odacli list-cpupools` to view all CPU pools in the deployment.

    # odacli list-cpupools

    # odacli describe-cpupool -n cpupool1

Using Browser User Interface to View CPU Pools

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Appliance tab.
3. Click CPU Pool to display the CPU Pool page.
4. You can view the list of all configured CPU pools.
5. To view the details of a CPU pool, click on the CPU pool or click on the Actions drop down and select View Details.

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Modifying a CPU Pool in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to modify a CPU pool in a bare metal or KVM deployment.

Using ODACLI to Modify CPU Pool

Use the command `odacli modify-cpupool` to modify a CPU pool.

    # odacli modify-cpupool -n cpupool1 -c 10

Restart the associated databases to use the updated CPU pool.

Using Browser User Interface to Modify CPU Pool

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Appliance tab.
3. Click CPU Pool to display the CPU Pools page.
4. From the Actions drop down list for the CPU pool you want to modify, select Modify.
5. In the Modify CPU Pool page, specify any changes in the Number of CPU Cores, and select if you want to apply the changes to running VMs or if you want to force the modify operation. Then click Modify.
6. When you submit the job, the job ID and a link to the job appears. Click the link to display the job status and details.
7. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command `odacli describe-job` with the job ID.

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Deleting a CPU Pool in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to delete a CPU pool in a bare metal or KVM deployment.

Using ODACLI to Delete CPU Pool

Use the command `odacli delete-cpupool` to delete a CPU Pool.

Delete a CPU pool named `cpupool1`.

    # odacli delete-cpupool -n cpupool1

Using Browser User Interface to Delete CPU Pool

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Appliance tab.
3. Click CPU Pool to display the CPU Pool page.
4. From the Actions drop down list for the CPU pool you want to delete, select Delete.
5. Click Yes to confirm your choice.
6. When you submit the job, the job ID and a link to the job appears. Click the link to display the job status and details.
7. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command `odacli describe-job` with the job ID.

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### Viewing CPU Pool Audit Records in a Bare Metal or KVM Deployment

Use ODACLI commands or the Browser User Interface to view CPU pool audit records in a bare metal or KVM deployment.

Using ODACLI to View Audit Record Details for CPU Pools

Use the `odacli list-auditrecords` command to list the audit records for a CPU Pool:

    # odacli list-auditrecords

Use the `odacli describe-auditrecord` command to describe the audit record for a CPU Pool.

    # odacli describe-auditrecord

Using Browser User Interface to View Audit Record Details for CPU Pools

Follow these steps:

1. Log into the Browser User Interface:

       https://host-ip-address:7093/mgmt/index.html

2. Click the Security tab.
3. Select Show Advanced Search and specify the filters for the CPU audit records details such as the From and To dates, Resource type, Resource name, DCS user name, Operation type, and the number of records to display the CPU Pool details.
4. From the list of audit records displayed, click on the audit record ID for which you to drill down for more details.

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments

### About Over-Subscribed CPU Pools

Configure virtual machines so that they do not subscribe to more CPU resources than the resources available in CPU pools.

A CPU resource can belong to one, and only one, CPU pool. You can assign multiple virtual machines to a CPU pool. A CPU pool becomes oversubscribed when the virtual machines that are active in the pool require more CPUs than you configured for the pool. For example, if a CPU pool has four CPUs, then you can start two virtual machines that are defined to use four CPUs each. In this case, the CPU pool is oversubscribed, because each of the four CPUs is supporting two virtual machines.

If you stop one of those virtual machines, but start another one that requires two CPUs, then the CPU pool is still oversubscribed. This is because two of the CPUs are supporting both virtual machines. When oversubscribing a CPU pool, assess the performance of the virtual machines in that pool. Reassign one or more virtual machines to a different CPU pool if sharing an oversubscribed pool degrades performance to unacceptable levels.

Parent topic: Managing CPU Pools on Oracle Database Appliance Bare Metal and KVM Deployments