Hard Disk IOPS Calculator for HDD Arrays

July 4, 2026

Hard Disk IOPS Calculator

Estimate HDD spindle IOPS from RPM, seek time, queue depth, RAID level, cache hit rate, and random versus sequential workload blend.

⚙Named HDD Storage Presets
💾HDD Array Inputs
Physical hard disks receiving the workload.
Used to calculate average rotational latency.
Random seek service time before rotation.
Sets read scaling and write penalty assumptions.
Writes are the remaining percentage.
Higher queues can improve throughput but raise latency.
Host reads served from RAM, ARC, controller cache, or OS cache.
Sequential blend is the remaining percentage.
Small blocks favor IOPS; large blocks favor throughput.
Outer-track or practical sustained HDD throughput.
Subtracts operational headroom so the result is closer to a sustainable target.
This is a sizing estimate, not a substitute for fio, diskspd, or real pool testing.
Sustainable Host IOPS
0
after cache and reserve
Raw Random Per Disk
0
mechanical IOPS estimate
Estimated Latency
0 ms
service time plus queue pressure
Sequential Throughput
0 MB/s
workload-adjusted host rate
📊HDD IOPS Spec Grid
55
5400 RPM random IOPS
75
7200 RPM random IOPS
125
10K SAS random IOPS
180
15K SAS random IOPS
4x
RAID 5 small write cost
6x
RAID 6 small write cost
16K
common VM block size
20%
typical safe headroom
⏱RPM, Seek, and Mechanical IOPS
HDD class Average seek Average rotation Random IOPS estimate
5400 RPM archive or quiet NAS 12 to 14 ms 5.56 ms 50 to 58 IOPS
5900 RPM low power desktop 11 to 13 ms 5.08 ms 55 to 62 IOPS
7200 RPM NAS or enterprise SATA 8 to 10 ms 4.17 ms 70 to 82 IOPS
10K SAS performance HDD 4.5 to 5.5 ms 3.00 ms 118 to 133 IOPS
15K SAS legacy performance HDD 3.0 to 4.0 ms 2.00 ms 167 to 200 IOPS
🗄RAID Write Penalty Reference
Layout Read scaling Small write penalty Best home server fit
Single disk or JBOD spread Up to all disks if balanced 1 physical I/O Cold media, backups, scratch disks
RAID 0 stripe All spindles 1 physical I/O Temporary fast space with no redundancy
RAID 1 mirror Both disks can read 2 physical I/Os Boot pools and small mirrored NAS
RAID 5 parity Most spindles can read 4 physical I/Os Read-heavy four to eight disk pools
RAID 6 dual parity Most spindles can read 6 physical I/Os Larger HDD arrays and safer rebuilds
RAID 10 mirror stripe All spindles can read 2 physical I/Os VM storage and write-heavy home labs
🔧Workload Blend Guide
Workload type Random share Read mix Queue depth note
Media streaming NAS 10% to 30% 80% to 95% Low queue depth, mostly sequential reads
Photo library and file shares 40% to 60% 65% to 85% Short bursts from many small files
VM datastore on HDD 75% to 95% 55% to 75% Queue depth matters but latency rises
Surveillance recording 5% to 20% 5% to 25% Sequential writes dominate
Backup target 15% to 35% 10% to 35% Mostly large write streams
📝Common HDD Array Scenarios
Scenario Spindles Typical layout Practical note
Two-bay mirrored NAS 2 RAID 1 or ZFS mirror Good reads, single-disk write feel
Four-bay media box 4 RAID 5 or RAIDZ1 Strong reads, parity write penalty
Six-disk VM lab 6 RAID 10 or mirrored vdevs Lower write penalty for small random I/O
Eight-disk backup shelf 8 RAID 6 or RAIDZ2 Safer rebuilds with slower random writes
Twelve-disk archive pool 12 Dual parity groups Plan around rebuild load and scrub windows
Tip: For HDD pools, average latency often becomes the real limit before the raw IOPS number looks exhausted. Leave reserve when hosting VMs, databases, or many small files.
Tip: Cache hit rate mostly helps reads. If the workload is write-heavy, RAID level and spindle count usually matter more than controller cache size.

Sure, you bought those hard drives because they held so much stuff. They was supposed to hold three hundred gigs of old photos, or maybe five terabytes of video. That’s why you bought them, that was the selling point.

But then you go to run a virtual machine off that array, and holy crap, does it grind to a halt. It’s not because there isn’t enough space, it’s because there aren’t enough IOPS (input operations per second). And unlike space, IOPS is tiny on spinning rust versus flash storage. And that IOPS number dictates whether your server feel snappy or sluggish.

Why Hard Drives Are Slow With Random Data

But real world physics apply to a hard disk; every random read has to move the actuator arm to the new track, then wait until the platter rotates back around so it can reach actual data. The sum of seek time + rotational latency = service time. A typical 7200 RPM drive could take up to ten milliseconds to locate a single little block of data. Do the math, you’ll see that at most your disk will be able to handle about one hundred operations per second before it’s fully saturated. Most folks dramatically overestimate what their few random writes does with that budget.

There’s another sneaky tax on this performance: RAID levels. While adding redundancy with parity protection is great, in a RAID five configuration, it means a single small write can require quadruple the effort. If your RAID level is five, then a little tiny write can become four physical writes (read old data, read old parity, calculate new parity, write new data). This is a killer of throughput.

When you pick out your layout, the calculator above will tell you exactly how many spindles you need to cover this overhead. Ignore the overhead and you’ll purchase storage that may look big but will perform poor under a load.

Hard drives are terrible at handling multiple requests simultaneously; that’s where queue depth comes into play. The more commands it receives from your workload in parallel, the longer it take to switch between them and the less time it has working; this is why the queue will cause latency spikes. A small queue maintains consistent latency for random workloads (think: virtual machines or databases). Higher queues, meanwhile, maintain throughput for sequential data streams such as media playback. The catch: know what kind of workload you’ve got. Table on the page shows this clearly by scenario. Backup target vs. NAS).

Read-heavy situations will get a boost from cache hits: The IOPS cost will drop nearly to zero if the controller or operating system can serve the request directly from memory (RAM) vs. The system has to spin up the disk. You’ll see this matter most in repeated access patterns. Caching is huge for a photo library that’s going to be viewed over and over again; it doesn’t do much for a surveillance camera, which writes new unique video frames every second. The calculator lets you tweak the hit rate to account for this, and it gives more realistic picture of how the host will perform vs. The raw limits of those spindles.

With sequential workloads, it’s a different story. Because data comes in big blocks, there isn’t much seeking for the drive. It simply continues writing at full speed until it has filled its cylinder. So while hard drives struggle with low IOPS, they shine during sequential workloads. You’re transferring large files and your workload is largely sequential, so you don’t care about operations per second; rather, you care about megabytes per second. These two mixed together make a complicated blend. Separating the random IOPS burden from the sequential throughput help you see which factor is limiting your performance.

There are always trade offs when building an HDD array. You must pick two from density, redundancy, or speed. For example, if you set up a RAID ten mirror stripe, you get great read performance and ok write performance, but you lose half of the capacity due to mirroring. On the other hand, if you use a RAID six array, you get double parity safety on a large array, but small writes will be painfully slow. The math doesn’t lie; you don’t get something for nothing. You should of known that.

You don’t want a theoretical max; you just want something you know is sustainable. You want some headroom so that when people do spike, there’s no buildup in the queue. Latency beyond twenty milliseconds starts getting perceptible to the user. If you understand the RAID penalties and the mechanical constraints of the disks, you can properly size an array for your workload rather than going purely based off a capacity basis. Make sure your data’s pattern matches how the disk work.

Hard Disk IOPS Calculator for HDD Arrays

Related posts

Leave a Comment