Understanding IOPS and storage performance

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.

Components that constitute IOPS

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).

Factors affecting IOPS

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.

Understanding the big three: IOPS vs. throughput vs. latency

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 storage performance in terms of IOPS

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.

How can OpManager help to optimize your storage performance?

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

IOPS Storage Performance - ManageEngine OpManager
IOPS in Storage - ManageEngine OpManager
Storage IOPS - ManageEngine OpManager
IOPS Storage Solutions - ManageEngine OpManager
 
 

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.

 

FAQs - IOPS Storage

What is IOPS in storage?

+

What is a good IOPS?

+

Where do you use IOPS as a measure?

+

How do you measure IOPS?

+

 

 
 Pricing  Get Quote