This information is available from the drive's manufacturer.
Calculate a Single Drive's IOPS
IOPS are used to define the performance of a given disk or array. To calculate the actual IOPS for a given disk you'll need the following:
- Average Latency
- Average Seek Time
As an example, we have a HGST Ultrastar 4TB 7200 RPM drive. It's rated as follows:
- Average Latency: 4.16 ms
- Average Seek time: 8.0 ms (for writes)
To calculate the IOPS, use the following formula: IOPS = 1 / (avg latency+average seek)
IOPS = 1 / (.00416 + .008)
Keep in mind this IO rate is a drive that is only 66% full. Your performance gets gradually slower as you approach full capacity.
For Solid State Drives
Although IOPS is quoted in the specs, trying to compute the IOPS for your transfer size for a SDD drive is a bit trickier. IOPS for solid drives are usually quoted in the drives spec for 4K requests. This is typically the highest performance number. There is also a result for reads and another number for writes. The speed of writes will decrease as you use more capacity, and the difference can be dramatic. The reason for this decline is that SSDs suffer from write amplification. Write amplification occurs because:
- The storage cells must be erased before they can be written to.
- Fragmentation degrades performance especially for sustained random writes.
- Fragmentation is more likely to occur as the free capacity decreases.
You should always design your system with excess storage capacity. The IOPS the vendors usually deliver is one where the queue depth is 32, but with SDDs you will also need many threads to reach maximum capacity. Performance will typically scale up to the bandwidth limit of the drive. The best way to compute the IOPS for a particular drive is to get one and by running tailored tests using your favorite disk test.