Home / OCI

OCIHow-toIntermediate

Optimization: OCI Block Volume performance levels (VPUs) and auto-tune

OCI Block Volume performance is set in Volume Performance Units (VPUs) per GB, and many volumes run at a level that doesn't match their use. Measure IOPS and throughput, pick Lower Cost, Balanced, Higher Performance or Ultra High Performance per volume, enable auto-tune to save on detached volumes and absorb peaks, and remember the instance-side limits.

Deepak Bhardwaj3 min read

Applies toOCI Block Volume and boot volumes, volume performance levels (VPUs/GB), detached and performance-based auto-tune, OCI Monitoring block volume metrics

Performance levels

Level VPUs/GB Typical use
Lower Cost 0 Large sequential, throughput-heavy, infrequent access (logs, backups staging)
Balanced 10 Default. Most boot volumes and general workloads
Higher Performance 20 Databases, busy application servers
Ultra High Performance 30–120 Demanding databases needing very high IOPS/low latency

Performance scales with both VPUs/GB and volume size, up to per-volume maximums. Higher VPUs cost more per GB per month. Check the current IOPS/throughput per GB tables.

1. Measure actual use

Block volume metrics in OCI Monitoring (oci_blockstore namespace), 30 days:

VolumeReadOps[1m]{resourceId = "<volume-ocid>"}.rate().percentile(0.95)
VolumeWriteOps[1m]{resourceId = "<volume-ocid>"}.rate().percentile(0.95)
VolumeReadThroughput[1m]{resourceId = "<volume-ocid>"}.rate().max()
VolumeThrottledIOs[1m]{resourceId = "<volume-ocid>"}.sum()

Compare against the level's capability for that volume size:

Finding Action
Throttled I/Os at peaks Raise VPUs (or size), or enable performance-based auto-tune
Usage far below Balanced capability, mostly sequential Try Lower Cost
Database volume at Balanced with latency complaints Higher Performance

2. Change the level online

oci bv volume update --volume-id $VOL --vpus-per-gb 20

VPU changes apply online, without detaching the volume (there may be limits on how often you change them). Boot volumes can be changed too:

oci bv boot-volume update --boot-volume-id $BOOT --vpus-per-gb 10

3. Auto-tune

Policy What it does
Detached volume auto-tune When a volume is detached, it drops to Lower Cost automatically and returns to its configured level when attached again
Performance-based auto-tune Scales VPUs up (to a maximum you set) when the volume is busy, and back down to the configured level when quiet
oci bv volume update --volume-id $VOL --autotune-policies \
  '[{"autotuneType": "DETACHED_VOLUME"}, {"autotuneType": "PERFORMANCE_BASED", "maxVpusPerGB": 30}]'

Set the base level for normal load and let performance-based auto-tune cover month-end or batch peaks, rather than paying for peak performance all month.

4. Don't forget the instance limits

Each instance shape has a maximum block storage bandwidth and IOPS, which also depend on the number of OCPUs on flexible shapes. A fast volume on a small instance is capped by the instance. For high IOPS, check:

  • Instance network bandwidth (it scales with OCPUs).
  • iSCSI vs paravirtualized attachment (paravirtualized can have lower performance for very high IOPS; Ultra High Performance has its own attachment requirements, multipath for iSCSI).

5. Size vs VPUs

Performance grows with size. Sometimes a slightly larger volume at Balanced costs less than the same size at Higher Performance for the IOPS you need. Compare both options with the pricing calculator.

6. Clean up

  • Volumes in AVAILABLE state not attached to anything (with detached auto-tune they at least cost less, but still cost).
  • Old volume clones used for testing.

Tip

Turn on detached-volume auto-tune by default for all new volumes (Terraform module default). It costs nothing in performance and catches the forgotten volume left behind after a migration.

Checklist

  • IOPS, throughput and throttling measured per volume
  • Level chosen per volume role
  • Detached auto-tune on all volumes
  • Performance-based auto-tune for peaky volumes
  • Instance-side limits checked
  • Unattached volumes reviewed