Skip to content
Cloud Provider Benchmarks

Methodology

Block storage benchmark methodology

How random and sequential IOPS, throughput and tail latency of cloud block volumes are measured with fio, including volume sizing, preconditioning and verification.

Version 1.0 Updated:

Scope

  • Network-attached block volumes (default performance tier) and local NVMe where offered
  • 4 KiB random read and write IOPS at queue depth 32
  • 1 MiB sequential read throughput
  • p99 completion latency for 4 KiB random reads at queue depth 1
Tools
Tool Version
fio Recorded per run

Volume configuration

A 200 GB volume of the provider’s default general-purpose tier is attached to the compute instance used in the compute methodology. Where performance scales with volume size, the size is noted and kept identical across providers. Provisioned-IOPS tiers are tested separately.

Preconditioning

The volume is filled sequentially once with fio --rw=write --bs=1M over its full size, so reads hit allocated blocks and thin-provisioning effects are removed.

Jobs

Job fio parameters
Random read IOPS --rw=randread --bs=4k --iodepth=32 --numjobs=4 --direct=1 --time_based --runtime=120
Random write IOPS --rw=randwrite --bs=4k --iodepth=32 --numjobs=4 --direct=1 --time_based --runtime=120
Sequential read --rw=read --bs=1M --iodepth=16 --numjobs=1 --direct=1 --time_based --runtime=120
Read latency --rw=randread --bs=4k --iodepth=1 --numjobs=1 --direct=1 --time_based --runtime=120

All jobs use --ioengine=libaio on the raw device and JSON output (--output-format=json).

Repetitions and verification

Each job runs 5 times on 3 volumes. The median is published with min/max. Burst-credit behaviour is detected by comparing the first and last 30 seconds of each run; if they differ by more than 20%, both phases are reported. Verification follows the same ±5% re-run rule as compute.

Limitations

  • Results reflect the volume tier, size and instance type tested; many providers cap IOPS per instance as well as per volume.
  • File-system overhead is excluded because tests use the raw device.

Benchmarks using this methodology

Other methodologies