EBS IOPS Calculator
Check whether a volume can actually deliver the IOPS you want given the 500:1 IOPS-per-GiB ratio and the type ceiling.
Inputs
500:1 for gp3 and io2, 50:1 for io1.
16,000 for gp3, 64,000 for io1, 256,000 for io2 Block Express.
IOPS You Can Actually Provision
75,000
Ceiling Imposed by Volume Size
75,000
Volume Size Needed for the Target
200GiB
IOPS Shortfall
25,000
Implied Throughput at That I/O Size
1,171.9MB/s
Binding Constraint
Volume size, via the IOPS-per-GiB ratio
Step by step
Values used
Volume size = 150 GiB; IOPS you want to provision = 100,000 IOPS; Maximum IOPS per GiB for the volume type = 500 IOPS per GiB; Volume type IOPS ceiling = 256,000 IOPS; Average I/O size = 16 KiB
EBS IOPS
achievable IOPS = min(requested, size x IOPS-per-GiB ratio, type ceiling); size needed = ceil(min(requested, ceiling) ÷ ratio).
IOPS You Can Actually Provision
= 75,000
Ceiling Imposed by Volume Size
= 75,000
Volume Size Needed for the Target
= 200 GiB
IOPS Shortfall
= 25,000
Implied Throughput at That I/O Size
= 1,171.9 MB/s
Binding Constraint
= Volume size, via the IOPS-per-GiB ratio
How it works
EBS caps provisioned IOPS two ways at once: a per-GiB ratio that grows with the disk and a hard per-volume ceiling that does not, so the binding limit flips as the volume grows. At 500:1 you need 200 GiB before io2 will accept 100,000 IOPS, and 512 GiB before the 256,000 ceiling becomes the limit instead. Converting IOPS to MB/s at your real average I/O size is what tells you whether the instance network or the volume runs out first. Provisioning a request the volume cannot legally accept fails at the API, and provisioning IOPS the workload cannot issue at its block size is money spent on headroom that never gets used.
Formula
EBS IOPS
achievable IOPS = min(requested, size x IOPS-per-GiB ratio, type ceiling); size needed = ceil(min(requested, ceiling) ÷ ratio).
- ratio
- Maximum provisioned IOPS per GiB, 500:1 on gp3 and io2
- ceiling
- Absolute per-volume IOPS maximum for the type
Frequently Asked Questions
How is EBS IOPS calculated?
achievable IOPS = min(requested, size x IOPS-per-GiB ratio, type ceiling); size needed = ceil(min(requested, ceiling) ÷ ratio). EBS caps provisioned IOPS two ways at once: a per-GiB ratio that grows with the disk and a hard per-volume ceiling that does not, so the binding limit flips as the volume grows. At 500:1 you need 200 GiB before io2 will accept 100,000 IOPS, and 512 GiB before the 256,000 ceiling becomes the limit instead. Converting IOPS to MB/s at your real average I/O size is what tells you whether the instance network or the volume runs out first.
Why does EBS IOPS matter?
Provisioning a request the volume cannot legally accept fails at the API, and provisioning IOPS the workload cannot issue at its block size is money spent on headroom that never gets used.
What values do I need to enter?
This calculator takes 5 inputs: Volume size, IOPS you want to provision, Maximum IOPS per GiB for the volume type, Volume type IOPS ceiling, Average I/O size. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Why does my volume not hit its provisioned IOPS?
The instance is usually the limit, not the volume. Every instance type has its own EBS bandwidth and IOPS maximum, and a volume provisioned beyond that ceiling will be throttled at the instance level no matter how large it is.