IOPS is a common performance measurement used to benchmark computer storage devices like
hard disk drives, solid state drives, and storage area networks. As with any benchmark,
IOPS numbers published by storage device manufacturers do not guarantee real-world application performance.
IOPS can be measured with applications, such as Iometer, as well as IOzone and FIO and
is primarily used with servers to find the best storage configuration.
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 and queue depth, as well as the data block sizes. There are other factors
which can also affect the IOPS results including the system setup, storage drivers, OS background
operations, etc. Also, when testing SSDs in particular, there are preconditioning considerations
that must be taken into account.
Performance characteristics
The most common performance characteristics measured are sequential and random operations.
Sequential operations access locations on the storage device in a contiguous manner
and are generally associated with large data transfer sizes, e.g., 128 KB. Random operations
access locations on the storage device in a non-contiguous manner and are generally
associated with small data transfer sizes, e.g., 4 KB.
The most common performance characteristics are as follows:
For HDDs and similar electromechanical storage devices, the random IOPS numbers are primarily
dependent upon the storage device's random seek time, whereas for SSDs and similar solid
state storage devices, the random IOPS numbers are primarily dependent upon the storage device's
internal controller and memory interface speeds. On both types of storage devices the sequential
IOPS numbers typically indicate the maximum sustained bandwidth that the storage device
can handle. Often sequential IOPS are reported as a simple MB/s number as follows:
Some HDDs will improve in performance as the number of outstanding IO's increases. This
is usually the result of more advanced controller logic on the drive performing command queuing
and reordering commonly called either Tagged Command Queuing or Native Command Queuing.
Most commodity SATA drives either cannot do this, or their implementation is so poor that
no performance benefit can be seen. Enterprise class SATA drives, such as the Western Digital
Raptor and Seagate Barracuda NL will improve by nearly 100% with deep queues. High-end
SCSI drives more commonly found in servers, generally show much greater improvement, with
the Seagate Savvio exceeding 400 IOPS—more than doubling its performance.
While traditional HDDs have about the same IOPS for read and write operations, most NAND
flash-based SSDs are much slower writing than reading due to the inability to rewrite directly
into a previously written location forcing a procedure called garbage collection. This
has caused hardware test sites to start to provide independently measured results when
testing IOPS performance. Newer flash SSD drives such as the Intel X25-E
have much higher IOPS than traditional hard disk drives. In a test done by Xssist, using
IOmeter, 4 KB random transfers, 70/30 read/write ratio, queue depth 4, the IOPS delivered by
the Intel X25-E 64 GB G1 started around 10000 IOPs, and dropped sharply after 8 minutes
to 4000 IOPS, and continued to decrease gradually for the next 42 minutes. IOPS vary between
3000 to 4000 from around the 50th minutes onwards for the rest of the 8+ hours test
run. Even with the drop in random IOPS after the 50th minute, the X25-E still has much
higher IOPS compared to traditional hard disk drives. Some SSDs, including the OCZ RevoDrive
3 x2 PCIe using the SandForce controller, have shown much higher sustained write performance
that more closely matches the read speed. Examples
Some com­monly accepted aver­ages for random IO operations, calculated as 1/(seek + latency)
= IOPS: Solid State Devices
See also Instructions per second
Performance per watt References