IOPS vs Throughput. Which one to use while choosing AWS EBS
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
When choosing an EBS volume, IOPS and throughput are not competing definitions of the same thing. They describe different limits, so the right choice depends on the shape of the workload: many small operations, or fewer large transfers.
What the Metrics Mean
IOPS means input/output operations per second. It measures how many read or write operations the volume can serve in one second.
Throughput measures how much data moves per second, usually in MiB/s.
A useful relationship is:
That explains why a workload can be limited by one of these before it is limited by the other.
When IOPS Is the Main Concern
IOPS matters most when the workload does many small random operations.
Examples include:
- transactional databases
- metadata-heavy services
- queue backends
- key-value workloads with small records
These workloads may not move huge amounts of total data, but they need many fast operations. In that situation, high throughput alone does not solve the problem.
When Throughput Matters More
Throughput becomes more important when the workload moves larger blocks sequentially.
Examples include:
- backups and restores
- log processing
- large ETL jobs
- media and analytics pipelines
These workloads often care more about steady transfer rate than about a very high count of tiny requests.
Choosing with EBS in Mind
A practical first pass is:
- use SSD-oriented options for latency-sensitive random I/O workloads
- use higher-throughput-oriented options for large sequential workloads
- use
gp3when you want explicit control of both IOPS and throughput
A simple Terraform example for a tuned gp3 volume looks like this:
That is a good example of the main idea: for many workloads, you need to reason about both dimensions together.
Measure the Workload Instead of Guessing
Do not choose from slogans. Measure what the application actually does.
Useful questions are:
- how large is a typical I/O request
- are accesses mostly random or sequential
- what is the peak operation count
- what is the peak data rate
- what does application latency look like under load
If queue depth rises while bytes per second remain modest, the workload may be IOPS- or latency-bound. If data transfer flattens at a ceiling during large scans, throughput is probably the bottleneck.
A Practical Decision Process
A sensible workflow is:
- identify the workload pattern
- estimate or measure average I/O size
- determine peak request rate and transfer rate
- choose the volume family
- provision some headroom
- monitor and adjust in production
That is much more reliable than trying to pick a universal winner between IOPS and throughput.
Common Pitfalls
The most common mistake is treating IOPS and throughput as interchangeable labels for storage speed.
Another mistake is benchmarking with synthetic tests that do not resemble the real workload's I/O size or access pattern.
It is also easy to focus on storage numbers while ignoring the application metric that users actually notice, which is usually latency.
Summary
- IOPS measures operation count, while throughput measures data transfer rate.
- Small random workloads usually care more about IOPS and latency.
- Large sequential workloads usually care more about throughput.
- '
gp3is useful because it lets you tune both dimensions explicitly.' - Measure the real workload before choosing, then verify the bottleneck with monitoring.
Related reading
- Is atomic failover for single high-throughput servers feasible?
- Is AWS Lambda preferred over AWS Glue Job?
- Is Azure SQL Database a Distributed SQL database?
- Is basic HTTP auth in CouchDB safe enough for replication across EC2 regions?
- iOS 5 Best Practice Release/retain?
- iOS 6 apps - how to deal with iPhone 5 screen size?
- Is cloud functions a valid replacement/implementation of a distributed system?
- Is Google Colab notebook sharing my Drive data with the notebook author?

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.