Input/output operations per second (IOPS) is a measure of the number of read and write operations a storage device can perform in one second. An input/output (I/O) operation involves two activities: reading data from a storage device, or writing the data to the file system, and subsequently the storage device. The cumulative number of read and write operations that can be performed by the computer onto the storage device is called IOPS. It is the standard against which almost all vendors measure the performance of their storage devices like hard disk drives (HDDs), solid state drives (SDDs), flash drives, and network-attached storage devices.
Although a widely accepted measure of storage performance, IOPS by itself is not a sufficient performance metric. It's like saying that an engine is running at 8,500 revolutions per minute (rpm), with no other context. However, saying that the engine is capable of producing 15 Nm of torque at 8,500rpm in the first gear fully describes the capabilities of the engine. Similarly, IOPS must be coupled with other metrics to give usable insights into the performance of storage devices.
Every storage device is physically partitioned into fragments of storage units called memory blocks. When a file is stored on the disk, it is partitioned into chunks of data, each of which is equal to the size of the memory block. For example, if a hard disk has a total capacity of 1TB, and has a memory block of 512 bytes, every file that is stored on the hard disk has to be split into blocks of 512 bytes, no matter the file size.
Since a block is the largest piece of disk space that can be allocated to a data chunk, it is conclusively the largest amount of data that can be accessed or processed in a single I/O operation. IOPS thus constitutes the cumulative count of read IOPS (the number of memory blocks accessed in a second) and write IOPS (the number of memory blocks onto which data is written).
The IOPS value in a storage system is dependent on a number of factors, varying across different configurations of hardware and the overlaid software. Here are the most prominent factors affecting the IOPS values.
Memory block size: The most important factor in IOPS calculation is the block size of the selected storage. IOPS value is inversely proportional to the block size. This is because the smaller the block size, the less time it will take to read or write the data to and from the block, resulting in a higher IOPS count. The larger the block size, the longer it will take to read or write data to the disk, resulting in a lower IOPS count.
CPU: One majorly overlooked aspect defining the IOPS values noticed in storage devices is the computing capacity of the CPU that's performing the read/write operations on the disk. A powerflu CPU can access a higher number of memory blocks in a unit time, and at a faster rate, than a CPU with comparatively less power. All the physical aspects of a CPU are equally contributing factors to the IOPS values, i.e., number of cores, processor thread count, clocking speed, on-chip memory, etc. As such, the observed IOPS value is directly proportional to all these inclusive CPU factors.
Type of storage device: Storage systems have evolved through the years. Different disks have different read and write architecture, and so, perform differently. Flash drives have a comparatively lower IOPS count compared to spindle-driven, mechanical HDDs, whose count lies within the range of a few hundreds. SSDs, the current flagships of the storage devices market, have the highest IOPS value, ranging anywhere between 5,000 IOPS to 1.5 million IOPS depending on the SSD architecture.
RAID level: If you have implemented a RAID system, the IOPS value will critically depend on the configured RAID level. RAID focuses on building redundancy for the storage disks using additional disks so data is not lost in case of device failures. In such cases, every instance of data being written onto the primary disk is also written onto the secondary and subsequent disks across the disk array. This increases the number of write operations to be performed, increasing the overall IOPS.
As mentioned before, IOPS by itself contains no tangible value unless associated with other metrics. When coupled with other metrics like throughput and latency, you can paint an exact picture of the status of storage performance.
Storage throughput refers to the amount of data transferred to and from the storage device per second. It is represented in bits per second. Also known as bandwidth or transfer rate, it refers to the maximum capability of the storage device in terms of how much volume of data it can move from one point to another in one second. The difference between throughput and IOPS is Latency refers to the time required by the system to process the I/O request.
To put this into perspective, if there is a bucket which is to be filled with water using a jug, IOPS is defined by how many jugs of water you can pour into the bucket in one second. Throughput, on the other hand, is defined by the volume of water that can be poured into the bucket in one second. There will always be a delay in the process of emptying the jug into the bucket, refilling it, and emptying it again. This is latency.
Difference between thoughput and IOPS: IOPS is a measure of the possible number of read/writes in a disk, while throughput is the data transfer rate of a disk. While they are dependent on different factors, they are also interdependent.
Relation between IOPS and throughput: The transfer rate, or throughput, is measured by multiplying the IOPS count with the memory block size.
Throughput = IOPS * Block Size
For example, if the IOPS is 1,500, and the block size is 128KB, the throughput is 192Mbps.
Interpreting IOPS value as a storage performance metric is totally relative and contextual. It should not be deduced that a higher IOPS signifies better performance and lower IOPS signifies poor performance. You must also consider block size, throughput, and latency. In case you are reading or writing smaller size files, a smaller block size is more efficient because it takes less time to access a smaller memory block. In such cases, the number of performed operations are high, and thus, high IOPS values are required. When dealing with large files, however, you'll need a larger block size. This means bigger data chunks and fewer read/write IOPS. This is when high throughput is required.
For context, consider a file that is 128,000 bytes in size. You could store the data in two configurations: (a) 1,000 blocks of 128 bytes each; or (b) 125 blocks of 1,024 bytes each. The amount of data being accessed is the same: 128,000 bytes.
If we consider a fixed IOPS value of 25 for both scenarios, reading data from configuration a would take longer (1,000 blocks/25 blocks per second = 40 seconds) because of the higher number of blocks. On the other hand, reading data from configuration b would take less time (125 blocks/25 blocks per second = 5 seconds) because of the fewer number of blocks.
For this same reason, it takes less time to copy a single 1GB video from your smartphone to your computer, than copying 2,000 images of 500KB each.
Dedicated storage solutions in your network call for a dedicated IOPS storage solutions. ManageEngine OpManager is an integrated proactive network monitoring solution that gives you visibility into the performance of all your storage devices on a single pane. With advanced performance monitoring of metrics like disk read and write statistics, capacity utilization monitors, and storage growth trends and graphs, OpManager packs a ton of features to manage and monitor your storage IOPS efficiently.
OpManager's huge array of monitors gather IOPS, throughput, data read and write rates, latency, and many other metrics from diverse storage devices like desktops, VM data stores, and RAID libraries. This data lets you check if there are any issues in the health and performance of your storage devices in terms of availability, accessibility, data transfer rates, or capacity constraints. OpManager's monitors keep track of your storage devices using pre-configured thresholds, which you can also customize according to the dynamics and requirements of your network. The alert-based fault indication system of OpManager makes sure that an alarm is raised and you are notified about any anomalies in the IOPS storage performance of your devices, based on the violation of configured thresholds.
IOPS metrics monitored using OpManager
Category |
Monitor Name |
Description |
Units |
---|---|---|---|
IOPS |
IO Read Rate |
Count of Read IOPS |
Operations/second |
IO Write Rate |
Count of Write IOPS |
||
IO Read and Write Rate |
Overall IOPS |
||
Latency |
Datastore Read Latency |
Latency of the storage device |
milliseconds (ms), microseconds (μs) |
Datastore Write Latency |
|||
Disk Max Total Latency |
|||
Disk Read Latency |
|||
Disk Write Latency |
|||
Average Disk Latency |
|||
Throughput |
IO Read Speed |
Read Throughput |
kbps |
IO Write Speed |
Write Throughput |
||
IO Read and Write Speed |
Overall Throughput |
||
Storage |
Free Disk Space |
Amount of space available on the disk |
GB, MB, KB |
Total Disk Space |
Disk capacity |
||
Datastore Free Space |
Space available on the VM datastore |
Download ManageEngine OpManager or check our free, 30-day trial to see how you can monitor your storage performance and maintain operational efficiency in your network. Want more features? Request them here. Meanwhile, subscribe to our monthly newsletter to keep up with our latest releases and updates.