Queue depth and block size change random-read latency because they control how much work is submitted at once and how much data each operation transfers. A low-queue, small-block test measures how quickly one request completes, while a high-queue test measures how much parallel work the storage path can sustain.
The same NAS can therefore show modest 4K QD1 IOPS, much higher 4K QD32 IOPS, and strong large-block throughput without contradiction. Each result describes a different workload, and the fastest benchmark number may be the least representative of an interactive database, photo library, or container app.
What Do Queue Depth and Block Size Actually Control?
Queue depth is the number of I/O operations outstanding at a measured layer. queue depth controls outstanding I/O requests, while block size defines the payload transferred by each request.
A test with QD1 submits one operation and waits for completion before issuing the next. A QD32 test allows many operations to wait or execute in parallel, giving the drive, controller, array, and network more opportunities to overlap work.
These values exist at several layers. The benchmark thread queue, operating-system block queue, HBA, NVMe submission queue, NAS protocol credits, and individual disks can all see different outstanding counts.
Why Does QD1 Expose Storage Service Time?
With one outstanding request, the next operation cannot hide behind parallel work, so QD1 exposes single-request service time. The result includes device service time plus protocol, filesystem, controller, network, and client overhead.
QD1 is therefore useful for user-facing tasks that issue one or a few dependent reads: opening metadata, loading a database page, reading a thumbnail, or following a pointer to the next structure.
It is not a complete capacity test. A modern SSD or striped array may support much more parallel work than QD1 supplies, so the result can understate maximum aggregate IOPS while accurately representing single-request responsiveness.
Why Can Higher Queue Depth Raise IOPS and Latency Together?
More outstanding work can keep storage channels busy and raise completed operations per second, but higher queue depth can raise IOPS and latency together. Each request may spend longer waiting before service.
The benchmark reports more total completions because the system overlaps work, not because every request became faster. Once the device or array reaches its service capacity, additional queue depth mostly lengthens the waiting line.
This is why high-QD IOPS and low interactive latency are separate goals. A backup server or analytics job may benefit from deep parallelism, while an app request cares about the completion time of one critical read.
How Does Block Size Change IOPS, Throughput, and Wait Time?
IOPS counts operations without describing how many bytes each operation moves. block size changes the balance between IOPS and throughput. One thousand 4K reads move far less data than one thousand 128K reads.
Small blocks emphasize per-operation overhead and are common for database pages, metadata, and application state. Larger blocks improve transfer efficiency and throughput but occupy the device, network, and controller for more bytes per request.
A larger block can reduce the number of IOPS needed for a given bandwidth while increasing the service time of each operation. Mixed applications need both dimensions because a NAS may serve tiny metadata reads beside large media or backup transfers.
Why Do Cache and Parallelism Make Results Look Better Than Apps Feel?
Benchmark results can be dominated by RAM, controller cache, client cache, or repeated access to a small working set. cache and concurrency can hide cold-read latency.
Parallel benchmark workers can also distribute requests across disks, NAND channels, CPU cores, SMB channels, or NVMe queues more effectively than one application thread. The test proves aggregate scaling, not that one cold app read receives the same benefit.
Use a data set larger than the relevant caches when testing storage media, and run separate warm-cache tests when application caching is part of the real design. Mixing the two produces a number whose bottleneck is unclear.
How Should a Home NAS Random-Read Test Match Real Workloads?
A useful benchmark varies the dimensions that real applications vary. realistic tests must match workload queue depth rather than reporting one maximum IOPS value.
Test QD1 and a few moderate depths, include 4K or 8K small reads and the larger blocks used by media or backup tools, and record average plus p95, p99, and maximum latency. Keep client, protocol, encryption, and data set constant when comparing storage changes.
Run the random-read test both alone and beside the background workloads that actually share the NAS. An isolated benchmark can measure the storage path cleanly, but it cannot reveal the latency users experience during app, backup, indexing, or parity contention.
| Test Shape | What It Emphasizes | Common Misreading |
|---|---|---|
| 4K QD1 | Single small-read response time | Assuming it shows maximum device IOPS |
| 4K high QD | Parallel small-I/O capacity | Assuming every request has low latency |
| 128K low QD | Large-request efficiency | Comparing its IOPS directly with 4K |
| Cached random reads | Memory and software-path performance | Attributing the result to the storage media |
FAQ
Is a higher queue depth always better?
No. It can improve aggregate throughput until the storage path is saturated, but requests may wait longer and interactive latency can worsen.
Why are 4K random-read numbers commonly reported?
Small blocks resemble database pages, metadata, and application state, and they expose per-operation overhead that large sequential transfers hide.
Should a NAS benchmark use QD32?
Only when the expected workload can create that much parallel I/O. Include QD1 and moderate depths for interactive home server apps.
Can network latency dominate a random-read test?
Yes. SMB or NFS round trips, client processing, encryption, and switch queues can exceed the device service time, especially at low queue depth.
Final Takeaway
Queue depth determines how much I/O can wait or execute in parallel, while block size determines how much data each operation moves. Higher queue depth can raise total IOPS while increasing per-request latency, and larger blocks can improve throughput while reducing operation counts. A useful home NAS benchmark matches real concurrency, data sizes, cache state, and tail-latency requirements instead of selecting the largest headline number.
Tech & AI HUB
More to Read

Runtime State vs Persistent State in Home Assistant: What Must Survive Restart?
Home Assistant does not persist every live value; config, registries, selected restored states, history, and deployment data play different restart roles.

How Does Home Assistant Authenticate Local and Remote Sessions?
Local and remote Home Assistant sessions use the same server-side identity model; remote access changes the route and TLS boundary, not the core token...

Why Can Home Assistant History Queries Slow as Recorder Data Grows?
Recorder growth can raise History query cost when the requested range touches more rows, cache misses increase, or storage and index work become slower.

