Skip to content
Calcrivo

IOPS Calculator

Estimate disk IOPS from mechanical latency components for HDDs, or from queue depth and latency for SSDs.

Inputs

ms

HDD only — time for the actuator to position the head

ms

HDD only — average time waiting for the platter to rotate into position (half a revolution)

Estimated IOPS

167

Drive Type

HDD (mechanical)

Total Latency per I/O

6.00ms

Step by step

  1. Values used

    Drive Type = HDD (mechanical); Average Seek Time = 4 ms; Rotational Latency = 2 ms; Queue Depth = 32; Average I/O Latency = 0.1000 ms

  2. HDD IOPS

    IOPS = 1000 / (seek_time_ms + rotational_latency_ms)

  3. SSD IOPS

    IOPS = (queue_depth / latency_ms) × 1000

  4. Estimated IOPS

    = 167

  5. Drive Type

    = HDD (mechanical)

  6. Total Latency per I/O

    = 6.00 ms

How it works

For mechanical HDDs, IOPS is bounded by physical latency: the time to seek the head to the right track plus the rotational latency waiting for the target sector to pass under the head, with 1000ms divided by that total latency giving operations per second. SSDs have no moving parts, so their IOPS instead scales with how many requests can be serviced in parallel (queue depth) divided by the average latency per request — flash controllers process many requests concurrently across channels, which is why SSD IOPS is typically 100-1000x higher than HDDs despite similar or lower per-request latency.

Formulas

HDD IOPS

IOPS = 1000 / (seek_time_ms + rotational_latency_ms)

SSD IOPS

IOPS = (queue_depth / latency_ms) × 1000

Frequently Asked Questions

Why don't SSDs have a seek time in this calculation?

SSDs use NAND flash with no mechanical head to move — any cell can be addressed electronically in roughly constant time, so there's no seek or rotational delay analogous to an HDD's actuator arm and spinning platter.

How does queue depth increase SSD IOPS if latency per request stays the same?

Modern SSD controllers process multiple requests concurrently across parallel NAND channels, so increasing queue depth lets more requests be in flight simultaneously — doubling queue depth roughly doubles throughput until the controller's internal parallelism or the host interface bandwidth is saturated.

Is real-world IOPS usually higher or lower than this estimate?

Usually lower, because this models only device-level latency for random, uniformly-sized I/O — real workloads add file system overhead, controller/HBA queuing, RAID write penalties, and mixed block sizes, all of which reduce effective IOPS below the raw device ceiling.

You might also need