Manage CPU/IO Shares on Autonomous Transaction Processing

Autonomous Transaction Processing comes with predefined CPU/IO shares assigned to different consumer groups. You can modify these predefined CPU/IO shares if your workload requires different CPU/IO resource allocations.

By default, the CPU/IO shares assigned to the consumer groups TPURGENT, TP, HIGH, MEDIUM, and LOW are 12, 8, 4, 2, and 1, respectively. The shares determine how much CPU/IO resources a consumer group can use with respect to the other consumer groups. With the default settings the consumer group TPURGENT will be able to use 12 times more CPU/IO resources compared to LOW, when needed. The consumer group TP will be able to use 4 times more CPU/IO resources compared to MEDIUM, when needed.

You can set CPU/IO shares from the service console or using the PL/SQL package cs_resource_manager.update_plan_directive.

Follow these steps to set CPU/IO shares from the service console:

  1. From the Autonomous Transaction Processing details page, click Service Console.
  2. On the Service Console click Administration.
  3. Click Set Resource Management Rules.
  4. Select CPU/IO shares to set CPU/IO share values for consumer groups.
  5. Set the CPU/IO share values.
  6. Click Save changes.

For example, the following figure shows CPU/IO share values that you can modify:

Description of atpc_manage_set_shares.png follows
Description of the illustration atpc_manage_set_shares.png

Click Load Default Values to load the default values; then click Save changes to apply the populated values.

You can also change the default values using the PL/SQL procedure cs_resource_manager.update_plan_directive:

For example, running the following script with the ADMIN user sets CPU/IO shares to 12, 4, 2, 1, and 1 for consumer groups TPURGENT, TP, HIGH, MEDIUM, and LOW respectively. This will allow the consumer group TPURGENT to use 3 times more CPU/IO resources compared to the consumer group TP and 12 times CPU/IO resources compared to the consumer group MEDIUM:

BEGIN
   cs_resource_manager.update_plan_directive(consumer_group => 'TPURGENT', shares => 12);
   cs_resource_manager.update_plan_directive(consumer_group => 'TP', shares => 4);
   cs_resource_manager.update_plan_directive(consumer_group => 'HIGH', shares => 2);
   cs_resource_manager.update_plan_directive(consumer_group => 'MEDIUM', shares => 1);
   cs_resource_manager.update_plan_directive(consumer_group => 'LOW', shares => 1);
END;
/