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 two types of CPU pools, that is, BM and VM.

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.

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).

Oracle Database Appliance provides ODACLI commands to create, update, modify, and delete 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 cpupool. 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 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 update-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 update-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 update-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.

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 bare metal or virtual
    • Number of CPU Cores: Number of CPU cores allocated to the pool
    • Configure on: For high-availability deployments, select the nodes where you want to configure the CPU pool.
  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.

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.

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.

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.

Viewing CPU Pool Audit Records 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 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.

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.