Introduction to Input/Output Operations Per Second (IOPS) [MiniTool Wiki]
What is IOPS definition? IOPS is short for input/output operations per second. As an input/output performance measurement, it is used to characterize computer storage devices such as HDD, SSD, and SAN.
Similar to benchmarks, the number of IOPS released by storage device manufacturers is not directly related to actual application performance. After got the IOPS meaning, MiniTool will introduce its background and performance characteristics.
To meaningfully describe the performance characteristics of any storage device, at least three metrics must be specified simultaneously: IOPS, response time, and (application) workload. Since response time and workload are not specified at the same time, IOPS is essentially meaningless.
From only one aspect, IOPS can be considered to be similar to the "revolutions per minute" of an automobile engine, that is, an engine that can rotate at 10,000 RPMs with its transmission in neutral does not deliver anything of value, but an engine that can produce a specified torque and horsepower at a given number of RPMs completely describes the performance of the engine.
In any system configuration, the specific number of possible IOPS will vary greatly, depending on the variables that the tester enters the program, including the balance of read and write operations, the mix of sequential and random access patterns, the depth of the number of worker threads and queues, and the data block size.
Other factors will also affect the IOPS results, such as system setup, storage drivers, operating system background operations. In addition, especially when testing SSDs, preconditioning considerations must be considered.
IOPS Performance Characteristic
Sequential operations and random operations are the most common performance characteristics measured. Sequential operations access locations on storage devices in a continuous manner and are usually related to larger data transfer sizes, such as 128 kB. Random operations access locations on storage devices in a non-continuous manner and are usually related to smaller data transfer sizes, such as 4kB.
Let’s take a look at the most common performance characteristics:
- total IOPS: Total number of I/O operations per second (when performing a mix of read and write tests).
- Random Read IOPS: Average number of random read I/O operations per second.
- Random Write IOPS: Average number of random write I/O operations per second.
- Sequential Read IOPS: Average number of sequential read I/O operations per second.
- Sequential Write IOPS: Average number of sequential write I/O operations per second.
For HDDs and similar electromechanical storage devices, the number of random IOPS mainly depends on the random seek time of the storage device, while for SSDs and similar solid-state storage devices, the number of random IOPS mainly depends on the internal controller and memory interface speed of the storage device.
On both types of storage devices, sequential IOPS numbers (especially when using large block sizes) usually represent the maximum sustained bandwidth that the storage device can handle.
As the number of outstanding IOs (queue depth) increases, the performance of some HDDs will improve. This is often the result of more advanced controller logic on the drive that performs command queuing and reordering on the drive, and is often referred to as Tagged Command Queuing (TCQ) or Native Command Queuing (NCQ).
Most commodity SATA drives cannot do this, or their implementation is too poor to see performance advantages. Enterprise-grade SATA drives will increase by nearly 100% when the queue is deep. High-end SCSI drives, which are more common in servers, usually show greater improvement.
Although the read and write operations of traditional HDDs have the same IOPS, the write speed of most SSDs based on NAND flash memory is much slower than the read speed because it cannot be directly rewritten to the previous write position, thus the process called garbage collection cannot be performed. This results in hardware test sites providing independent measurement results when testing IOPS performance.
Newer flash SSDs (such as the Intel X25-E) have much higher IOPS than traditional HDDs. In a test conducted by Xssist, adopting IOmeter, 4 KB random transfer, 70/30 read/write ratio, queue depth 4, the IOPS released by Intel X25-E 64GB G1 began around 10000 IOP, and sharply dropped to 4000 IOPS after 8 minutes and gradually decreased over the next 42 minutes.
In the rest of the more than 8 hours’ test run, starting from about the 50th minute, the IOPS varied between 3000 and 4000. Even if the random IOPS drops after 50 minutes, X25-E still has higher IOPS than traditional hard drives. Some SSDs (including OCZ RevoDrive 3 x2 PCIe using SandForce controllers) show higher continuous write performance, which is closer to the read speed.
This post is mainly talking about IOPS, after you read this post, you should know IOPS definition, background as well as performance characteristics.