background success stories

What to know to set ASM_POWER_LIMIT?

This parameter specifies the default power for disk rebalancing in a disk group. It is used to rebalancing operation across disks when disks are added and removed from diskgroup.

What is the ASM_POWER_LIMIT parameter used for?

The higher the limit, the faster rebalancing operation, but it consumes processing and I/O resources. Rebalance operation will take longer with a low value . .

What is the best value from documentation?

Up to 11g, ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit , the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources. The range of values is 0 to 11.

Since, 12.1, the ASM_POWER_LIMIT initialization parameter specifies the default power for disk rebalancing in a disk group. The range of values is 0 to 1024. The default value is 1. A value of 0 disables rebalancing.

Higher numeric values enable the rebalancing operation to complete more quickly, but might result in higher I/O overhead and more rebalancing processes.
For disk groups that have the disk group ASM compatibility set to 11.2.0.2 or higher (for example, COMPATIBLE.ASM = 11.2.0.2), the operational range of values is 0 to 1024 for the rebalance power.
For disk groups that have the disk group ASM compatibility set to less than 11.2.0.2, the operational range of values is 0 to 11 inclusive. If the value for ASM_POWER_LIMIT is larger than 11, a value of 11 is used for these disk groups.

  • The default ASM power limit, ie the asm_power_limit parameter in the ASM instance, should be set to ensure the application performance is not impacted while rebalance is running. The default 12.1.0.2 deployment sets asm_power_limit=4 for all Exadata racks.
  • The default 12.1.0.2 deployment sets asm_power_limit to as below for OVM deployments :
    • deployments with 1 OVM RAC cluster – asm_power_limit=4
    • deployments with 2 OVM RAC clusters – asm_power_limit=2
    • deployments with more than 2 OVM RAC clusters – asm_power_limit=1

Setting asm_power_limit=0 disables ASM rebalance operations. In normal operations, asm_power_limit should not be set to 0.

What is the ASM_POWER_LIMIT value meaning?

That’s the question! Up to 1024 but according to Oracle Note, it seems that Oracle haven’t seen much improvement beyond power 30.

How to change the value?

To modify ASM_POWER_LIMIT use, sample:

alter system set ASM_POWER_LIMIT = 1 scope=memory|spfile|both;

To modify the power for a diskgroup use, sample:

alter diskgroup MYDiskGroup rebalance power 2;

How to follow the rebalance operation?

col name            format A12
col error_code format A15
select dg.name, op.inst_id, op.group_number, op.operation, op.pass,
op.state, op.power, op.sofar, op.est_work, op.est_rate, op.est_minutes, op.error_code
from gv$asm_operation op join gv$asm_diskgroup dg
on op.inst_id=dg.inst_id and op.group_number=dg.group_number;

You can have details in ASM alert.log, arb trace file.

What is the effect of increasing the value of the ASM_POWER_LIMIT parameter?

With a rebalance operation requiring several hours, increase the ASM_POWER_LIMIT can help to reduce the duration. But it can impact the instance I/O performance that’s why it’s really important to check impact on performance using a tool like Lighty!
Set the ASM_POWER_LIMIT to one is a good starting point. The testing is the key here but in production environment I recommend patience and caution!

With ASM_POWER_LIMIT set to 32. The performance are impacted!

With ASM_POWER_LIMIT set to 1. There is no impact on instance performance.

References

  • When Will the Rebalance Complete (Doc ID 1477905.1)
  • Oracle Exadata Initialization Parameters and Diskgroup Attributes Best Practices (Doc ID 2062068.1)
  • Health Check Alert: Set ASM_POWER_LIMIT greater than 4 (Doc ID 1095773.1)
  • Oracle documentation