Measuring IOPS and Monitoring the Performance of Your Flash Array

Posted by VIOLIN SYSTEMS on Dec 21, 2020 2:25:57 PM
VIOLIN SYSTEMS

So, how well is your flash array performing?

Imagine if you wore a fitness tracker that only measured one simple (fairly easy) fitness routine you completed over and over again but ignored your more demanding workouts. When charted on a graph, your workout efforts would look like a flat line, giving no indication of your overall performance and no measurement for how you performed during more challenging workouts!

Wouldn't you prefer a full picture of how you're doing? That would make sense.

Your flash array measures storage performance in a similar way. To get any real indication of how well your flash array is performing, you need a complete snapshot of what it's doing, including how many inputs and outputs it can handle per second in real-world situations. 

Deciding on what enterprise storage solution will best fit your needs depends on maximizing inputs and outputs per second (IOPS) and increasing performance value. Vendors access all kinds of methods to optimize their storage queue because, hypothetically, you can tune operations for faster results. Therefore, many storage units often appear to be the best choice for your enterprise on a proposal napkin. The only problem? In practice, any data management choice must facilitate multiple inputs and outputs, simultaneously, and usually at somewhat equal proportions in real-world applications. An IOPS value alone might struggle to reflect.

Are you testing out the performance of your flash array? Actual field testing and measuring how to manage IOPS daily requirements.

Inputs and Outputs and IOPS (“Oh My!”)

Whenever we use technology, we are performing read and write operations—requesting inputs and outputs. Inputs, or "writes," are received by the system and are written into storage, while outputs, also called "reads" send the data that's been written into storage outwards to complete a request.

You likely already know that a flash system’s stated IOPS value is indicative of how many different input or output operations the device can perform in a second. It’s one (very reliable) way to measure the overall performance of the storage solution. Higher values mean that your system can handle more operations per second. 

Every flash array has a maximum hypothetical IOPS value that’s based solely on a formula. However, actual performance and the true IOPS value is affected by certain factors, including:

  • Average latency for the segment of the drive to be accessed.
  • Average seek time in milliseconds for read-write operations to complete, as an average of combined read-and-write seek times.

Legacy storage solutions like hard disk drives also have to worry about rotational speed, or how quickly the disks rotate, which correlates to how well they perform. Naturally, these environments will endure more latencies. 

Since all-flash NVMe arrays operate without any rotating platters or disks, data is accessible instantly since read requests perform in almost no time. The amount of time a flash array requires to finish a read command on a flash array is measured in sub-millisecond time.

The debate is over since solid-state drives (SSDs) outperform hard disk drives (HDDs) by design. HDDs average an IOPS value of 55 to 180 IOPS, while SSDs average 3,000-40,000 IOPS, with some SQL-based SSDs measuring IOPS in the millions. A world record for IOPS was set in 2019 topping out at 13.8 million IOPS

When performance matters to you, the best management techniques generate from when and how you measure data. Test and calculate IOPS on your own array for any of this to mean something. So what does your IOPS value measurement reveal to you anyway? Let's explore your options.

What Measuring IOPS Tells Us

Here’s the truth about measuring IOPS: 

Things aren’t always what they seem.

IOPS measures the number of "transactions" your system can sustain per second. A significant impact on your IOPS value is latency (or delay). Focusing just on IOPS as a performance metric offers us only a piece of the full picture

However, a system's IOPS does not tell us how much data each transaction delivers, which widely varies if there are latencies. 

To measure and maintain high IOPS performance, storage systems need to have enough pending data requests in the queue so that the latencies of a few requests don't impact your overall IOPS value. Otherwise, your real IOPS value remains less known and less accurate. When the number of requests in the queue dip, latencies affect the IOPS value more, and low queue depth is a common occurrence in flash storage systems.

Truthfully, optimal performance is a balance. Get an idea of your system's actual IOPS value by

introducing enough transaction requests in the queue, and such testing is always beneficial. On the flipside? An overload of requests in the queue may hide latencies in the short term. The system is still processing large numbers of transactions per second in the cue, giving you a high IOPS value, even though it takes a while to complete the requests that are experiencing latencies. This means that your IOPS may look fine in the short-term, but its ability to improve long-term performance may not be satisfactory.

How Do We Evaluate Performance?

Since IOPS is just one indicator of how well flash storage is performing, how do we evaluate our flash array performance?

The workload amount determines IOPS calculations. The best way to measure your all-flash array's real-life performance is to come up with your own performance indicators based on your everyday workloads. An example of running such personalized tests might seek to measure several demanding applications, purposefully triggering high volumes of IOPS, simultaneously, via inputting high volumes of data. These results can become personalized into a share-worthy performance report to generate more useful outcomes for your data center. 

All-flash arrays offer consistent high-performance essential to manage increasing virtual servers, growing virtual desktop dependence, and adding users per database. All-flash NVMe arrays offer such high-performance to match most enterprise needs, but is your data center at scale yet require even higher performance levels? When performance matters, it matters and fast, so explore VIOLIN Systems' pursuit of the most efficient storage software as your next step.

Get more information and stay educated on how to maximize the performance of your all-flash array through Insights. From NVMe SQL server/all-flash array combinations to simplified data processing, VIOLIN Systems can provide you with a high-performing storage solution that optimizes IOPS, reduces latencies, and increases throughput. For immediate assistance, or help generating a personalized performance report on your most demanding applications,

Talk to an Expert Today!

Topics: Flash Array, IOPS