From the beginning of the Storage era, almost all storage vendors challenged each other to achieve the highest number of IOPS possible. There are a lot of historical storage datasheets showing IOPS as the only number and probably customers at that time only followed those numbers.
What is IOPS?
IOPS (input/output operations per second) is the standard unit of measurement for the maximum number of reads and writes to non-contiguous storage locations. IOPS is frequently referenced by storage vendors to characterize performance in solid-state drives (SSD), hard disk drives (HDD), and storage area networks. However, an IOPS number is not an actual benchmark, and numbers promoted by vendors may not correspond to real-world performance.
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.
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 RPMs at that moment is meaningless. Without taking into account the data block size (or I/O size), read/write activity, or I/O stream, IOPS as a stand-alone measurement says little.
Do IOPS really matter?
The short answer here is: “a little bit”. It is one factor of several other factors. After the data revolution, a lot of things got changed. Now the source of data could be millions of devices in an IoT system, which means there are millions of systems that are trying to Read/Write simultaneously. The type of workloads dramatically varies especially in the presence of caching from write-intensive media solutions like VDI solutions to read intensively in the database world. The time to reach the data becomes extremely important in several time-sensitive architectures like core banking.
So now the huge numbers measured in millions are nothing to be proud of, so let us check what other factors we need to check before selecting or judging our storage
How IOPS are measured and do that related to your workload?
Storage vendors used to do their benchmarks in a way that helped them reach a higher number of IOPS, usually using few numbers of clients which might not be your use case, small block size such as 4k which might be much lower than the one you need, random workloads where SSD speed grows 50% Read/Write which also might not be related to for example VDI or archiving workloads. Usually, the reads are much faster than the writes, especially in RAID arrays. Such a type of benchmarking will lead to a huge number of IOPS which might be not relevant to workloads that may need a lower amount of IOPS, but more data written per each IOPS may introduce a game-changing factor that is latency.
IOPS vs Latency
Latency is a really critical factor, never accept those huge IOPS numbers without having a look at the latency figures.
Latency is how long it takes for a single IOPS to happen, by increasing the workload the storage hardware including the controller, caching, RAM, CPU, etc will try to keep the latency consistent but things are not that ideal, at certain huge number of IOPS things will go out of control and the storage appliance hardware will get exhausted and more busy, so a delay serving the data will start getting noticed by the application and problems will start to happen.
Databases for example are very latency sensitive workloads, usually they need small latency [5ms or lower] especially during writing otherwise there will be a huge performance degradation and business impact.
So if your business is growing and you noticed degradation in your database performance, You don’t only need a storage with higher IOPS rate but with lower latency as well which leads us to another side point which is storage flexibility that Buurst can help you with. Just few steps you can upgrade your storage with whatever numbers that satisfies your workload
How to get storage performance that will work?
Generally speaking, any storage data-sheet is not usually meant for you, but it can be somehow relevant and give you an idea about the general performance of the storage especially if it includes:
1. Several benchmarks based on different block sizes, different read/write ratios, and both the sequential and random workload cases.
2. The number of clients used per each benchmark, the RAID type, and the storage features [compression, deduplication, etc].
3. The IOPS/latency charts for each of the above cases, which is the most important thing.
That is not all, if you are satisfied with those initial metrics, you are recommended to ask for a PoC to check how the storage works in your environment and in your specific case.