About
IOPS (Input/Output Operations Per Second, pronounced eye-ops) is a common performance measurement used to benchmark computer storage devices like:
- Local Storage: Hard Drive / disk (SSD, Platter, NVM)
- Remote Storage: storage area networks (SAN).
Parameters
The specific number of IOPS possible in any system configuration will vary greatly, depending upon the variables the tester enters into the program, including:
- the balance of read and write operations,
- the mix of sequential and random access patterns,
- the number of worker threads
- the queue depth (the number of outstanding IO),
- the buffer sizes of the application (??)
- the block of the file system.
Be careful, there are also a lot of other factors which can also affect the IOPS results including:
- the system setup,
- storage drivers,
- OS background operations,
- etc.
Formula
Sequential
The answer is typically converted to MegabytesPerSec
<MATH>IOPS = \frac{\text{Bytes Per Second}}{\text{Transfer Size In Bytes}}</MATH>
Random IO operations
<MATH> IOPS = \frac{1}{seek + latency} </MATH>
Raid
Drive - RAID Technology Overview
<MATH> IOPS = \frac{\text{Number of disks} * \text{Average I/O Operations on 1 disk per-sec}}{ \text{% of read workload} + (\text{Raid Factor} * \text{% of write workload})} </MATH> where:
- Number of disks: If one disk can perform 150 IOPS, two disks can perform 300 IOPS
- Raid Factor (ie RAID1,2, …)
Software
IOPS can be measured with applications, such as:
- IOzone
- and FIO