Definition: What Is IOPS?
IOPS (Input/output operations per second) is a performance indicator that measures the speed and efficiency of a storage device based on the number of read/write operations it can complete within a second. It is also a standard performance benchmark for storage systems, such as hard disk drives (HDD), flash drives, and solid-state drives (SSD).
Generally, a high IOPS value indicates better performance and faster data access for the storage system. However, it’s crucial to understand that IOPS refers specifically to the storage system’s potential rather than the volume of data processed.
Why Is IOPS Important?
IOPS is important because it directly impacts the overall responsiveness and performance of data-intensive applications.
Simply put, high IOPS values mean faster access to data, thus better performance of applications and services relying on the storage systems. However, low IOPS values mean slow access to data, which can cause delays and bottlenecks.
Mainly, IOPS are critical for workloads with high I/O requirements, such as virtualization, databases, data warehouses, and cloud computing. This is primarily because these workloads generate a large volume of I/O operations and are thus affected by the number of I/O operations the storage system can execute. IOPS are also necessary for real-time applications that require low latency, high throughputs, and high availability, such as online gaming and video streaming. These applications also rely heavily on the IOPS capabilities of a storage system.
Overall, the IOPS value is necessary as it tells us how well and efficiently a system can handle I/O operations.
IOPS vs. Throughput vs. Latency
IOPS, throughput, and latency are essential performance metrics for storage systems. Hence, it is best to utilize all three metrics to get a complete picture of storage device performance.
While IOPS measures the number of I/O operations a storage system can perform per second, throughput measures the amount of data a storage system can transfer per second. IOPS is an excellent measure of a system’s potential storage performance and, thus, is an excellent baseline assessment. The measurement unit for IOPS is operations per second (OPS or IOPS/s). It is also crucial to know that other metrics, like data transfer speeds, that are measured in KiB can be coupled with IOPS. Assume, for instance, that a storage device has 10,000 IOPS and 100 KiB/s of data transfer speed. The device can thus perform 10,000 input/output operations per second, transferring 100 KiB (102,400 bytes) of data for each.
However, throughput is measured in megabits per second (MB/s) or gigabytes per second (GB/s) and helps you measure sequential operations with large files. Throughput is also related to bandwidth, the data transfer capacity at a given time.
Latency, the third metric, is measured in milliseconds (ms) and tells the time a storage system takes to respond to a request. A lower latency means faster storage performance, while a higher latency means slower performance. Thus, latency is an essential factor for applications requiring quick response times.
It is also crucial to be aware that other metrics, like data transfer speeds, that are measured in KiB can be coupled with IOPS. Assume, for instance, that a storage device has 10,000 IOPS and 100 KiB/s of data transfer speed. The device can thus perform 10,000 input/output operations per second, each involving a transfer of 100 KiB (102,400 bytes) of data.
IOPS Performance Characteristics
By performance characteristics, we refer to the disk access patterns, which is how data is read and written from a storage device—an HDD or SSD. The typical performance characteristics include sequential, random, and a combination of both operations.
Sequential access pattern refers to reading and writing data continuously. It is usually faster and generally seen with operations dealing with large files. Random access patterns, however, access data in a non-sequential way and are thus slower. This is mainly because the data is dispersed all over the storage medium. For example, accessing small files scattered across the disk or performing random reads/writes for a database.
IOPS differ depending on how data is accessed and the operation (read and write) performed. You can break down IOPS’s performance characteristics into:
- Total IOPS: The total number of I/O operations, sequential and random access (read and write), occur within a second.
- Sequential Write IOPS: Average number of sequential write I/O operations that occur within a second.
- Sequential Read IOPS: Average number of sequential read I/O operations that occur within a second.
- Random Write IOPS: Average number of random write I/O operations that occur within a second.
- Random Read IOPS: Average number of random read I/O operations that occur within a second.
It is important to know that the sequential IOPS numbers represent the maximum sustained bandwidth the storage device can handle regardless of the storage drive in question.
IOPS in SSD vs. HDD Storage Drive Performance
Generally, solid-state drives support more IOPS operations than hard disk drives. The IOPS values of SSDs typically range from tens of thousands to hundreds of thousands, whereas HDDs range from a hundred to several thousand. This difference affects the way both devices store and retrieve data. Hence, SSDs have a much higher IOPS performance value and are often the preferred choice for applications requiring fast data access.
SSDs also outperform HDDs in terms of IOPs for several reasons:
- First, SSDs lack moving parts. Thus, they are more reliable as the lack of moving parts makes them less prone to failure since there are no mechanical parts that would wear out over time.
- SSDs use less power and are more durable than HDDs as they are less sensitive to physical shock and vibration.
- Unlike HDDs, whose random IOPS depends on the seek time, SSDs primarily rely on the device’s memory interface and internal controller. This translates to higher continuous write performance, faster I/O speeds, and access to data. Thus, shorter boot time and lower latency, especially for data-intensive workloads like virtual machines, databases, and cloud applications.
When it comes to areas where HDDs outshine SSDs, you will see the pros in the cost and their compatibility with older hardware and software systems, as they have been around for decades. It is also much easier to recover data from a failed HDD than from a failed SSD. Also, one way to increase HDD performance is by increasing the number of outstanding IOs (queue depth). This can be done through Tagged Command Queuing (TCQ) or Native Command Queuing (NCQ), simply adding an advanced controller logic on the drive.
Limitations of IOPS
IOPS is a valuable metric; however, it isn’t and shouldn’t be used as a standalone measure when assessing performance due to its shortcomings.
For starters, IOPS tells us more about the potential of a storage system rather than about the actual performance of the storage system. It doesn’t consider several other factors, such as queue depth, workload performance, I/O stream, and the data block size (I/O size). It’s why the more extensive block-size storage system will process more data than its smaller counterpart, even when the two have the same IOPS value. As a result, IOPS must be used with other measures to assess performance fully. A high IOPS doesn’t necessarily mean the storage system works optimally if the other listed factors are not considered. It simply tells us this is the maximum number of I/O operations the storage drive can perform in a second.
IOPS value also tends to differ between various systems, especially systems that are heavily I/O bound. Thus, it is always important to understand the specific conditions of the storage system—the type of storage device in question, the workload being run on the system, and the connection interface (SATA or NVMe)—when interpreting IOPS values.
What Is a Good IOPS Value?
There really isn’t a number; the ideal IOPS value depends much more on your specific use case and system requirements.
Here are a few examples:
- For a desktop or laptop with an SSD, a good IOPS value ranges from tens of thousands to hundreds of thousands of IOPS. However, for sequential I/O, this good value will need to be higher, up to several hundred thousand or over a million IOPS. However, if this same laptop had an HDD instead, a good IOPS value would be a few hundred to several thousand IOPS.
- Resource-intensive storage systems for high-performance applications such as databases and virtualization will need a good IOPS value ranging from tens of thousands to hundreds of thousands or even millions of IOPS. This will further depend on the workload and the size of the dataset being processed.
- Cloud-based storage and content delivery networks (CDN) will look at several thousand to hundreds of thousands of IOPS per node, with multiple nodes working in parallel to handle the large data traffic volumes. Some high-end flash drives have IOPS values above one million.
Overall, a good IOPS considers your workload and meets the specific requirements and demands of the system in question.
What Causes Poor IOPS Value?
Various factors affect the IOPS values of storage devices or systems. A few of these factors include:
- Interface speed: It’s the maximum data transfer rate between the storage device and the computer. Thus, systems with faster interfaces like Thunderbolt 3 or USB 3.2, which offer higher bandwidth, will have much higher IOPS values when compared to slower interfaces, such as USB 2.0 or older SATA connections. This is mainly due to limited data throughput.
- Block size: It determines the size of data chunks that can be read or written to the storage device. This means smaller data chunks are processed more quickly. Thus, small block sizes ranging from 4KB or 8KB tend to have higher IOPS, and larger block sizes like 64KB or 128KB usually have lower IOPS values.
- Storage system capacity: As storage devices age, they degrade and lead to reduced IOPs over time. It becomes a problem because managing a larger volume of data efficiently becomes more challenging. This is why SSDs generally provide higher IOPS than traditional HDDs due to their faster access times.
- RAID levels: The RAID (Redundant Array of Independent Disks) system comprises six ways to use multiple disks to increase performance and data redundancy. Each of these various ways plays a role in the IOPS value of a system. Thus, choosing a RAID level based on your needs is critical to optimize your IOPS performance. Here is why:
- RAID 0 can increase IOPS performance through data striping across multiple disks but lacks data redundancy. So, a single disk failure can result in data loss. Thus, they’re suitable where speed is paramount, but data redundancy is not a concern.
- RAID 1 can’t increase IOPS performance because it focuses on data mirroring for redundancy. Also, since it has data redundancy by duplicating data across multiple disks, data recovery can occur if one disk fails. They can be used when ideal IOPS performance improvement is not the primary goal, but data redundancy and reliability are critical.
- RAID 5 and RAID 6 offer data redundancy by using parity information. RAID 5 and 6 also increase IOPS performance through data striping and parity calculations. Hence, they’re the preferred choice for data-intensive applications where data redundancy and improved IOPS performance are essential.
How to Measure IOPS?
Before measuring the IOPS value of any device, the first step is to determine what type of storage the device is. After that, measuring the IOPS is as simple as selecting a monitoring tool, choosing a testing method, running the test, and analyzing the result. The tool cuts across system-level utilities, commercial IOPS monitoring tools like Sematext Infrastructure Monitoring, or open-source tools like fio. While the testing method can be sequential read/write, random read/write, or a combination, the choice depends on the monitoring tool you selected.
However, as mentioned earlier, more than IOPS is needed for a comprehensive overview of a storage device’s capabilities. Hence, it is essential to consider other factors like latency and throughput when evaluating storage performance.
Luckily, tools like Sematext give a more comprehensive understanding of storage performance by considering all these other factors.
IOPS Monitoring with Sematext
Sematext Infrastructure Monitoring is a cutting-edge solution that simplifies system performance analysis, providing valuable insights into I/O operations. Whether you’re managing databases, storage systems, or cloud environments, Sematext offers a holistic view of your I/O activities.
By closely tracking IOPS metrics, you can efficiently identify performance bottlenecks and strategically allocate resources for enhanced efficiency and reduced downtime. Real-time anomaly detection ensures that unusual IOPS behavior is promptly addressed or even avoided, mitigating potential issues before they escalate.
Sematext Infrastructure Monitoring features pre-configured yet fully customizable dashboards, letting you see exactly what you need to check and monitor performance easily. Threshold-based alerts seamlessly integrate with various notification platforms so you can receive timely notifications through your preferred communication channels. This enables swift responses to critical events.
Want to know more about Sematext Infrastructure Monitoring? Check out this quick video below or start your 14-day free trial.