Skip to download

hesela.dev

Storage glossary · datasets · llms.txt · hesela.com

Dataset · computed table · no measured data

IOPS, bandwidth, queue depth and latency: a worked table from Little's law

How IOPS, bandwidth, queue depth and mean latency relate, as a worked table of 100 rows: four block sizes (4 KiB to 1 MiB), queue depths of 1 to 128 and mean latencies of 100 microseconds to 10 milliseconds. The rules are IOPS = queue depth / mean latency (Little's law) and bandwidth = IOPS x block size, in decimal MB/s and in MiB/s as fio prints them. Pure arithmetic, no measurement. For example, queue depth 1 at 100 microseconds is 10,000 IOPS and 40.96 MB/s at 4 KiB, and queue depth 32 at 1 millisecond is 32,000 IOPS.

Download CSV100 rows · 6 columns · CSV

File /data/datasets/fio-iops-bandwidth-latency-calc.csv · JSON metadata · Chart (SVG) · Interface payload ceilings · All datasets

Scope and rules

Scope: a conversion table, not a benchmark. It lists no device and no result. Little\u2019s law says the mean number of items in a system equals the arrival rate times the mean time an item spends there, L = \u03bbW. For storage I/O, L is the queue depth (the I/Os in flight, fio\u2019s iodepth), \u03bb is IOPS and W is the mean latency of one I/O. That gives:

The table is a grid of 4 block sizes (4,096, 16,384, 131,072, 1,048,576 bytes), 5 queue depths (1, 4, 16, 32, 128) and 5 mean latencies (0.1, 0.5, 1, 5, 10 ms): 100 rows. The build recomputes every cell, checks that IOPS times latency returns the queue depth, and fails on a mismatch.

Conventions from the documentation

Worked examples

Chart

Log-log plot of IOPS against mean latency from 0.1 to 10 ms for queue depths 1 to 128. At 1 ms the lines run from 1,000 IOPS at queue depth 1 to 128,000 IOPS at queue depth 128.
Block size does not enter IOPS, so one block size is enough for the chart. Every point is a CSV row.

Limits

Table

Same 100 rows as the CSV.
Block size (bytes)Queue depthMean latency (\u00b5s)IOPSMB/sMiB/s
4,096110010,00040.9639.06
4,09615002,0008.197.81
4,09611,0001,0004.13.91
4,09615,0002000.820.78
4,096110,0001000.410.39
4,096410040,000163.84156.25
4,09645008,00032.7731.25
4,09641,0004,00016.3815.62
4,09645,0008003.283.12
4,096410,0004001.641.56
4,09616100160,000655.36625
4,0961650032,000131.07125
4,096161,00016,00065.5462.5
4,096165,0003,20013.1112.5
4,0961610,0001,6006.556.25
4,09632100320,0001,310.721,250
4,0963250064,000262.14250
4,096321,00032,000131.07125
4,096325,0006,40026.2125
4,0963210,0003,20013.1112.5
4,0961281001,280,0005,242.885,000
4,096128500256,0001,048.581,000
4,0961281,000128,000524.29500
4,0961285,00025,600104.86100
4,09612810,00012,80052.4350
16,384110010,000163.84156.25
16,38415002,00032.7731.25
16,38411,0001,00016.3815.62
16,38415,0002003.283.12
16,384110,0001001.641.56
16,384410040,000655.36625
16,38445008,000131.07125
16,38441,0004,00065.5462.5
16,38445,00080013.1112.5
16,384410,0004006.556.25
16,38416100160,0002,621.442,500
16,3841650032,000524.29500
16,384161,00016,000262.14250
16,384165,0003,20052.4350
16,3841610,0001,60026.2125
16,38432100320,0005,242.885,000
16,3843250064,0001,048.581,000
16,384321,00032,000524.29500
16,384325,0006,400104.86100
16,3843210,0003,20052.4350
16,3841281001,280,00020,971.5220,000
16,384128500256,0004,194.34,000
16,3841281,000128,0002,097.152,000
16,3841285,00025,600419.43400
16,38412810,00012,800209.72200
131,072110010,0001,310.721,250
131,07215002,000262.14250
131,07211,0001,000131.07125
131,07215,00020026.2125
131,072110,00010013.1112.5
131,072410040,0005,242.885,000
131,07245008,0001,048.581,000
131,07241,0004,000524.29500
131,07245,000800104.86100
131,072410,00040052.4350
131,07216100160,00020,971.5220,000
131,0721650032,0004,194.34,000
131,072161,00016,0002,097.152,000
131,072165,0003,200419.43400
131,0721610,0001,600209.72200
131,07232100320,00041,943.0440,000
131,0723250064,0008,388.618,000
131,072321,00032,0004,194.34,000
131,072325,0006,400838.86800
131,0723210,0003,200419.43400
131,0721281001,280,000167,772.16160,000
131,072128500256,00033,554.4332,000
131,0721281,000128,00016,777.2216,000
131,0721285,00025,6003,355.443,200
131,07212810,00012,8001,677.721,600
1,048,576110010,00010,485.7610,000
1,048,57615002,0002,097.152,000
1,048,57611,0001,0001,048.581,000
1,048,57615,000200209.72200
1,048,576110,000100104.86100
1,048,576410040,00041,943.0440,000
1,048,57645008,0008,388.618,000
1,048,57641,0004,0004,194.34,000
1,048,57645,000800838.86800
1,048,576410,000400419.43400
1,048,57616100160,000167,772.16160,000
1,048,5761650032,00033,554.4332,000
1,048,576161,00016,00016,777.2216,000
1,048,576165,0003,2003,355.443,200
1,048,5761610,0001,6001,677.721,600
1,048,57632100320,000335,544.32320,000
1,048,5763250064,00067,108.8664,000
1,048,576321,00032,00033,554.4332,000
1,048,576325,0006,4006,710.896,400
1,048,5763210,0003,2003,355.443,200
1,048,5761281001,280,0001,342,177.281,280,000
1,048,576128500256,000268,435.46256,000
1,048,5761281,000128,000134,217.73128,000
1,048,5761285,00025,60026,843.5525,600
1,048,57612810,00012,80013,421.7712,800

Columns

block_size_bytes (integer)
I/O size in bytes: 4096, 16384, 131072, 1048576. These are the values fio reads from bs=4k, 16k, 128k, 1m with its default kb_base of 1024.
queue_depth (integer)
I/Os in flight, the fio iodepth option, and L in Little's law.
mean_latency_us (integer)
Mean time one I/O spends in the system, in microseconds, and W in Little's law.
iops (integer)
queue_depth / mean_latency_us * 1e6, I/Os per second. Computed here.
bandwidth_mb_s (number)
iops * block_size_bytes / 1e6, two decimals, decimal megabytes per second (the kB/s style fio prints).
bandwidth_mib_s (number)
iops * block_size_bytes / 2^20, two decimals, mebibytes per second (the KiB/s style fio prints).

License

The table is arithmetic computed here from Little's law and from the unit conventions of fio. No third-party data or documentation text is copied. Reuse is fine with attribution to this site.

Wikipedia reuse terms · Little\u2019s law source

Sources

  1. Little's law, Wikipedia: L = lambda W and the response-time example (accessed 2026-10-11)
  2. fio documentation: iodepth, blocksize, kb_base and unit prefixes (accessed 2026-10-11)