IOPS (input/output operations per second)
What is IOPS (input/output operations per second)?
IOPS (input/output operations per second) is the standard unit of measurement for the maximum number of reads/writes to noncontiguous storage locations. IOPS is pronounced EYE-OPS.
Simply put, IOPS is a measure of a storage device's read/write speed. It refers to the number of input/output (I/O) operations the device can complete in a second and provides a standard benchmark for measuring and assessing the performance of storage devices, like hard disk drives (HDDs), solid-state drives (SSDs), flash drives and storage area networks (SANs).
A higher IOPS number indicates the potential for better performance and faster data access for the storage device. However, the value does not refer to the volume of data processed by the device.
Along with transfer rate, which measures how fast data can be transferred from contiguous storage locations, IOPS can be used to measure storage performance. While transfer rate is measured in bytes, IOPS is measured as an integer.
IOPS, latency and throughput explained
Throughput measures how many units of information a system can process in a period of time. It can refer to the number of I/O operations per second but is typically measured in bytes per second.
Latency measures the time between issuing a request and receiving a response. With regards to IOPS, latency is a measure of the length of time it takes for a single I/O request to be completed from the application's point of view.
On their own, IOPS, latency and throughput cannot provide an accurate measure of a storage device's performance. However, combining and assessing all three measurements can provide a better gauge of performance, especially if other factors are also taken into account, such as queue depth, data block size or workload performance. Also, measuring both IOPS and latency can help network administrators predict how much load a network can handle without performance being negatively affected.
What is IOPS used for?
IOPS is frequently referenced by storage vendors to characterize performance in SSDs, HDDs and SANs. The metric is used to measure both sequential and random read/write operations.
Sequential IOPS refers to the average number of sequential read/write I/O operations the device can handle per second, while random IOPS values are the average number of random read/write I/O operations the device can handle per second.
A third IOPS measure is known as total IOPS. It refers to the total number of read/write I/O operations occurring within a second. These operations may be sequential or random.
Measuring IOPS
In the past, IOPS was often measured with a testing tool called Iometer, created by Intel in 1998. Iometer determined peak IOPS under differing read/write conditions. Suitable for both single and clustered systems, Iometer measured the performance of I/O operations under controlled loads. Intel discontinued work on Iometer in 2001 and handed it over to Open Source Development Labs. Since 2003, Iometer has been a community-driven project with multiple members trying to improve, port and extend Iometer.
It is possible to calculate IOPS without Iometer, but results vary depending on the performance category of the workload. IOPS can be measured using an online IOPS calculator, which determines IOPS based on the drive speed, average read seek time and average write seek time.
IOPS in SSDs vs. HDDs
HDDs use the standard equation to determine IOPS, but SSDs perform differently. With HDDs, IOPS is dependent on the seek time, but SSDs are primarily dependent on the device's internal controller. SSD performance changes over time, peaking early on.
However, even after it drops into the steady state, SSDs still outperform HDDs in terms of IOPS. In general, the IOPS values of SSDs can range from tens of thousands to hundreds of thousands, whereas the IOPS values for HDDs range from just a few hundred to a few thousand.
HDDs also grapple with higher latency and longer read/write times, have several moving parts and are more sensitive to physical events, like shocks and vibrations. For these reasons, SSDs provide more reliable performance and are the preferred storage medium for applications requiring fast data access.
Do IOPS numbers matter?
As a measurement, IOPS can be compared to revolutions per minute (rpm) of a car engine. If a vehicle is in neutral, stating that the engine is capable of spinning at 10,000 rpm in that moment is meaningless. Without taking into account the data block size, I/O size, read/write activity or I/O stream, IOPS as a standalone measurement says little.
So, despite being touted by storage device vendors as a useful performance measure, it's questionable how much IOPS as a measurement matters for this particular purpose. Simply put, IOPS is useful to understand the maximum number of I/O operations the storage drive can perform per second -- i.e. potential performance -- but not to understand its actual performance.
Also, depending on the workload, IOPS numbers can vary wildly, so grading the performance of the storage system based solely on IOPS is inadvisable. In general, there are three types of workload performance: random, sequential and a mixture of the two. Redundant array of independent disks, or RAID, can also impact IOPS calculations since each write operation results in multiple writes to the storage array.
Because IOPS numbers are affected by the size of the data block and workload performance, as well as factors like queue depth, it's unlikely that vendors use standardized variables when listing IOPS. Even if they did use a standard system to determine IOPS, with a set block size and read/write mix, the number itself means little unless it matches up to a specific workload.
Finally, to provide IOPS benchmarks, vendors test device speed in ideal environments. Real-world scenarios are rarely ideal, so devices seldom match given IOPS measurements. This results in differences between real -- and real-time -- IOPS numbers and manufacturer-measured and published numbers, another reason why it's not a good idea to rely only on IOPS.
Explore the challenges and benefits of provisioned IOPS storage, and check out this primer on SSD response time and other performance benchmarks. Also, see how to effectively compare storage system performance.