IOPS to Throughput (MB/s) & Latency Calculator: Convert between storage IOPS, I/O block size, and throughput (MB/s). Calculate storage queue depth, Little. Free, private, and simple to use in your browser.
The Fundamental Mechanics: IOPS, Block Size, and Throughput
In computer systems architecture and cloud infrastructure engineering, storage performance is governed by three inextricably linked variables: IOPS (Input/Output Operations Per Second), Block Size (the payload byte quantity transferred per operation), and Throughput (the total volume of data moved per second, typically expressed in Megabytes per second or Gigabits per second).
A common misconception among developers is treating IOPS as an absolute measure of disk speed. A storage subsystem reporting 100,000 IOPS delivering 4 KB blocks achieves a throughput of only 390 MB/s. Conversely, an enterprise data warehouse backup running at a modest 2,000 IOPS with 1 MB blocks pushes 2,000 MB/s (2 GB/s) of pure data stream. Without qualifying the underlying block size, IOPS alone is an incomplete and potentially misleading metric.
Mathematical Conversion Formulas
The mathematical equations relating storage metrics are strictly linear:
Throughput (MB/s) = $frac{text{IOPS} times text{Block Size (KB)}}{1,024}$
Throughput (Bytes/sec) = $text{IOPS} times text{Block Size (Bytes)}$
Required IOPS = $frac{text{Throughput (MB/s)} times 1,024}{text{Block Size (KB)}}$
Throughput (Gbps) = $frac{text{Throughput (MB/s)} times 8}{1,000}$
Queuing Theory & Little's Law in Disk Storage
A drive cannot deliver its rated IOPS if the operating system and applications do not keep the drive's internal queues full. This relationship is formalized by Little's Law from queuing theory:
$L = lambda times W$
Where: $L$ = Average Queue Depth (concurrent in-flight commands), $lambda$ = Processing Rate (IOPS), $W$ = Service Latency (seconds)
Rearranged: $text{Queue Depth} = text{IOPS} times text{Latency (seconds)}$
$text{Max Achievable IOPS} = frac{text{Queue Depth}}{text{Latency (seconds)}}$
If an application executes single-threaded synchronous I/O ($text{Queue Depth} = 1$) against an SSD exhibiting 0.5 ms (0.0005 s) latency, the absolute maximum theoretical IOPS is $1 / 0.0005 = mathbf{2,000text{ IOPS}}$, regardless of whether the SSD is marketed as an 800,000 IOPS monster. To unlock high IOPS on modern NVMe drives or cloud volumes, applications must utilize asynchronous I/O (such as Linux io_uring or libaio) or multi-threaded connection pools to maintain deep queue depths ($text{QD} ge 32$).
Step-by-Step Worked Numerical Example
Suppose a database administrator is provisioning an AWS EBS gp3 volume for a MySQL InnoDB cluster:
- Engine: MySQL 8.0 InnoDB (Default page size = 16 KB)
- Target IOPS: 8,000 IOPS
- Baseline gp3 limits: 3,000 IOPS, 125 MB/s (Provisioned: 8,000 IOPS, 125 MB/s default throughput)
- Average SSD Latency: 1.2 milliseconds (0.0012 seconds)
Step 1: Calculate the required throughput:
$text{Throughput (MB/s)} = frac{8,000 times 16text{ KB}}{1,024} = mathbf{125.0text{ MB/s}}$
Step 2: Check cloud volume limits:
Calculated Throughput = 125.0 MB/s
Provisioned gp3 Cap = 125.0 MB/s — Saturation = 100.0%
At exactly 8,000 IOPS with 16 KB pages, the volume perfectly saturates the 125 MB/s baseline throughput cap. If the workload spikes to 9,000 IOPS or if a table scan issues 64 KB blocks, throughput will hit the 125 MB/s hard ceiling, and AWS EBS will forcibly throttle disk I/O, spiking database latency from 1.2 ms to tens of milliseconds. The administrator must provision additional gp3 throughput (up to 250 MB/s or higher) to provide operational headroom.
Step 3: Calculate required application concurrency (Queue Depth):
$text{Queue Depth} = 8,000 text{ IOPS} times 0.0012 text{ seconds} = mathbf{9.6text{ concurrent requests}}$
Reference Table: Typical Workload Profiles
| Workload Type | Typical Block Size | I/O Pattern | Read/Write Mix | Primary Metric |
|---|---|---|---|---|
| OLTP Databases (MySQL, Postgres) | 8 KB – 16 KB | Random | 70% Read / 30% Write | Low Latency & High IOPS |
| Data Warehousing / Analytics (Snowflake, ClickHouse) | 64 KB – 1,024 KB | Sequential | 95% Read / 5% Write | Maximum MB/s Throughput |
| Event Streaming (Kafka, RabbitMQ) | 64 KB – 512 KB | Sequential Append | 50% Read / 50% Write | Sustained MB/s Throughput |
| Virtual Desktop Infrastructure (VDI) | 4 KB – 8 KB | Random Bursty | 20% Read / 80% Write (Boot Storms) | Peak Burst IOPS |
| Video Streaming / Media Delivery | 256 KB – 4,096 KB | Sequential | 99% Read / 1% Write | High Sustained Throughput |