Dynamic Performance Scaling

Block Volume provides dynamic performance scaling with autotuning. This feature enables you to configure your volumes so that the service adjusts the performance level automatically to optimize performance.

There are two types of dynamic performance scaling with autotuning you can enable for volumes:

  • Performance Based Auto-tuning: When this option is enabled, Block Volume adjusts the volume's performance between the levels you specify, based on the monitored performance for the volume.

  • Detached Volume Auto-tuning: When this option is enabled, Block Volume adjusts the volume's performance level based on whether the volume is attached or detached from an instance.

Required IAM Policy

To use Oracle Cloud Infrastructure, an administrator must be a member of a group granted security access in a policy  by a tenancy administrator. This access is required whether you're using the Console or the REST API with an SDK, CLI, or other tool. If you get a message that you don't have permission or are unauthorized, verify with the tenancy administrator what type of access you have and which compartment  your access works in.

For administrators: The policy in Let volume admins manage block volumes, backups, and volume groups lets the specified group do everything with block volumes and backups, but not launch instances.

If you're new to policies, see Managing Identity Domains and Common Policies. For reference material about writing policies for instances, cloud networks, or other Core Services API resources, see Details for the Core Services.

Performance-Based Dynamic Scaling

The performance based autotuning feature enables Block Volume to adjust the volume's performance between levels you specify, based on the actual monitored performance of a volume.

When you enable performance-based dynamic scaling with autotuning, you specify the default performance setting (VPUs/GB), which is lowest performance level the volume will be adjusted to when attached to an instance. You also specify the maximum performance level (VPUs/GB), which is the maximum performance level the volume will be adjusted to. Block Volume monitors the volume's performance using the following metrics:

  • Volume throttled operations
  • Volume guaranteed VPUs/GB
  • Volume guaranteed IOPS
  • Volume guaranteed throughput

These metrics help the service determine the load on the volume and whether the performance level needs to be adjusted. For more information about these metrics, see Descriptions: Performance Metrics and Block Volume Metrics.

When viewing the Block Volume Details or Boot Volume Details pages in the Console, the applicable fields are:

  • Default Performance: When Performance Based Auto-tune is enabled, this is the lowest performance level that Block Volume will adjust the performance to when the volume is attached. If Performance Based Auto-tune is disabled, this is the volume's performance level. If you have enabled Detached Volume Auto-tune, and the volume is detached, this is the performance level the volume will be adjusted to when the volume is reattached to an instance.

  • Auto-tuned Performance: This is the volume's effective performance. If Performance Based Auto-tune is disabled for the volume, this is the same as the default performance for the volume.

  • Performance Based Auto-tune: This field indicates whether the performance based autotuning feature is enabled for the volume. When it is off, the volume's Auto-tuned Performance is always the same as what is specified for Default Performance.

When Performance Based Auto-tune is enabled, Block Volume adjusts the performance to the default level as much as possible. As load on the volume increases, the service ramps up the performance level up as needed, on a best-effort basis.

The adjustments to ramp up the performance are fast acting, repeated actions, in tens of seconds, to provide steady performance increases as needed. The adjustments to ramp down the performance are slow-acting, with the initial adjustment taking effect in an hour, and then subsequent adjustments taking minutes. This avoids reducing volume performance abruptly while the performance is still needed.

Enabling Performance-based Autotuning for a New Block Volume

Learn how to enable performance-based autotuning when creating a new block volume to automatically adjust its performance between levels you specify.

  • This task can't be performed using the Console.

  • Use the oci bv volume create command and specify the --compartment-id and --autotune-policies parameters to enable performance-based autotune for a new block volume:

    oci bv volume create --compartment-id <compartment_ID> --autotune-policies <auto-tune_policies_JSON>' 

    For example:

    oci bv volume create --compartment-id ocid1.compartment.oc1.phx.<unique_ID> --autotune-policies '[{"autotune-type": "PERFORMANCE_BASED", "maxVpusPerGB": 50}]''

    For a complete list of parameters and values for CLI commands, see the CLI Command Reference.

  • Run the CreateVolume operation and specify the autotunePolicies attribute in the CreateVolumeDetails resource to enable performance-based autotuning.

Enabling Performance-based Autotuning for an Existing Block Volume

Learn how to enable performance-based autotuning to automatically adjust an existing block volume's performance between levels you specify.

    1. Open the navigation menu  and select Storage. Under Block Storage, select Block Volumes.
    2. Select the block volume that you want to enable performance-based autotuning for.
    3. Select Edit.
    4. In the Volume Size and Performance section, select the Performance based auto-tune slider so that it changes from Off to On.
    5. Select Save changes.
  • Use the oci bv volume update command and specify the --volume-id, --compartment-id and --autotune-policies parameters to enable performance-based autotuning:

    oci bv volume update --volume-id <volume_ID> --compartment-id <compartment_ID> --autotune-policies <auto-tune_policies_JSON>' 

    For example:

    oci bv volume update --volume-id ocid1.volume.oc1.phx.<unique_ID> --compartment-id ocid1.compartment.oc1.phx.<unique_ID> --autotune-policies '[{"autotune-type": "PERFORMANCE_BASED", "maxVpusPerGB": 50}]''

    For a complete list of parameters and values for CLI commands, see the CLI Command Reference.

  • Run the UpdateVolume operation and specify the autotunePolicies attribute in the UpdateVolumeDetails resource to enable performance-based autotuning.

Detached Volume Performance Autotuning

The detached volume performance autotuning feature enables Block Volume to adjust the volume's performance level to the optimal level based on the attached state of the volume.

If this feature is enabled, when the volume is detached, the Block Volume service adjusts the performance level to Lower Cost (0 VPUs/GB) for both block volumes and boot volumes. When the volume is reattached, the performance is adjusted back to the performance level specified by the default VPUs/GB setting. If performance based dynamic scaling with autotuning is also enabled, it will take effect at this point to further dynamically scale performance as needed by workloads that use the volume.

When viewing the Block Volume Details or Boot Volume Details pages in the Console, the applicable fields are:

  • Default Performance: When Performance Based Auto-tune is disabled, this is the volume's performance level that you specify when you create the volume or when you change the performance setting for an existing volume. When the volume is attached, regardless of whether Detached Volume Auto-tune is enabled or not, this is the volume's performance.

  • Auto-tuned Performance: This is the volume's effective performance. If Detached Volume Auto-tune is enabled for the volume, Auto-tuned Performance will be adjusted to Lower Cost when the volume is detached. Note that Auto-tuned Performance won't show the performance setting as Lower Cost until the performance adjustment is complete.

  • Detached Volume Auto-tune: This field indicates whether Detached Volume Auto-tune is enabled for the volume. When it is off, the volume's effective performance is always the same as what is specified for Default Performance. When it is on, the volume performance is adjusted to Lower Cost when the volume is detached.

See Timing Limits and Considerations for details about when these settings take effect.

Timing Limits and Considerations

The following list identifies some timing considerations you should be aware of when using the detached volume autotuning feature.

  • When you enable Detached Volume Auto-tune for a detached volume, the Block Volume service starts the performance adjustment to Lower Cost after 14 days.

  • When you enable Detached Volume Auto-tune for an attached volume, the Block Volume service starts the performance adjustment to Lower Cost 14 days after you detach the volume.

  • If you disable Detached Volume Auto-tune while a volume is detached, Block Volume service starts the performance adjustment to the Default Performance setting right away.

  • If you change the Default Performance for a detached volume with Detached Volume Auto-tune enabled, the Auto-tuned Performance for the volume will remain Lower Cost until you reattach the volume.

  • If you clone a detached volume with Detached Volume Auto-tune enabled, the Block Volume service starts the performance adjustment to Lower Cost after 14 days.

  • To optimize performance for a volume configured for Ultra High Performance, the volume attachment needs to be enabled for multipath. When you reattach a volume that has had the detached volume autotuned to Lower Cost, but the volume is configured for Ultra High Performance, you need to confirm that the attachment is multipath-enabled after the volume is reattached. For more information, see:

Enabling Detached Volume Autotuning for a New Block Volume

Learn how to enable detached volume autotuning when creating a new block volume to automatically adjust its performance based on attachment to or detachment from an instance.

  • This task can't be performed using the Console.
  • Use the oci bv volume create command and specify the --compartment-id, --autotune-policies parameters to enable detached volume autotuning:

    oci bv volume create --compartment-id <compartment_ID> --autotune-policies <auto-tune_policies_JSON>' 

    For example:

    oci bv volume create --compartment-id ocid1.compartment.oc1.phx.<unique_ID> --autotune-policies '[{"autotune-type": "DETACHED_VOLUME"}]''

    For a complete list of parameters and values for CLI commands, see the CLI Command Reference.

  • Run the CreateVolume operation and specify the autotunePolicies attribute in the CreateVolumeDetails resource to enable detached volume autotuning.

Enabling Detached Volume Autotuning for an Existing Block Volume

Learn how to enable detached volume autotuning to automatically adjust an existing block volume's performance based on attachment to or detachment from an instance.

    1. Open the navigation menu  and select Storage. Under Block Storage, select Block Volumes.
    2. Click the block volume that you want to enable detached volume autotuning for.
    3. Click Edit.
    4. In the Volume Size and Performance section, click the Detached Volume Auto-tune slider so that it changes from Off to On.
    5. Click Save Changes.
  • Use the oci bv volume update command specify the --volume-id, compartment-id, and --autotune-policies parameters to enable detached volume autotuning:

    oci bv volume update --volume-id <volume_ID> --compartment-id <compartment_ID> --autotune-policies <auto-tune_policies_JSON>' 

    For example:

    oci bv volume update --volume-id ocid1.volume.oc1.phx.<unique_ID> --compartment-id ocid1.compartment.oc1.phx.<unique_ID> --autotune-policies '[{"autotune-type": "DETACHED_VOLUME"}]''
    cli_command required_parameter_and_value [OPTIONS]

    For a complete list of parameters and values for CLI commands, see the CLI Command Reference.

  • Run the UpdateVolume operation and specify the autotunePolicies attribute in the UpdateVolumeDetails resource to enable detached volume autotuning.