IOPS (number of I / O operations - from the English. Input / Output Operations Per Second) is one of the key parameters in measuring the performance of data storage systems, hard drives (HDD), solid-state drives (SSD) and network-attached storage (SAN).
In fact,
IOPS is the number of blocks that manages to be considered or enrolled on the media. The larger the block size, the smaller the pieces that make up the file, and the smaller the IOPS will be, since it will take longer to read a larger chunk.
So, to determine IOPS, you need to know the speed and size of the block during a read / write operation. The IOPS parameter is equal to the speed divided by the block size when the operation is performed.Performance characteristics
The main measured values ​​are linear (sequential) and random (random) access operations.
')

By linear read / write operations in which parts of files are read sequentially, one after another, is meant the transfer of large files (more than 128 K). For arbitrary operations, the data is read randomly from different areas of the carrier, usually they are associated with a block size of 4 KB.
The following are the main features:
Parameter
| Description
|
Total IOPS (Total IOPS)
| The total number of I / O operations per second (when performing both reading and writing)
|
Random Read IOPS
| Average number of random reads per second
|
Random Write IOPS
| Average number of random write operations per second
|
IOPS sequential read (Sequential Read)
| Average number of linear read operations per second
|
IOPS sequential write (Sequential Write)
| Average number of linear write operations per second
|
Approximate IOPS Values
Approximate IOPS values ​​for hard drives.
Device
| Type of
| Iops
| Interface
|
7,200 rpm SATA drives
| HDD
| ~ 75-100 IOPS
| SATA 3Gb / s
|
10,000 rpm SATA drives
| HDD
| ~ 125-150 IOPS
| SATA 3Gb / s
|
10,000 rpm SAS drives
| HDD
| ~ 140 IOPS
| SAS
|
15,000 rpm SAS drives
| HDD
| ~ 175-210 IOPS
| SAS
|
Approximate IOPS values ​​for SSD.
Device
| Type of
| Iops
| Interface
|
Intel X25-M G2 MLC
| SSD
| ~ 8,600 IOPS
| SATA 3Gb / s
|
OCZ Vertex 3
| SSD
| ~ 60,000 IOPS (Random 4K)
| SATA 6 Gb / s
|
OCZ RevoDrive 3 X2
| SSD
| ~ 200,000 IOPS (Random 4K)
| PCIe
|
OCZ Z-Drive R4 CloudServ
| SSD
| ~ 1 400 000 IOPS
| PCIe
|
RAID penalty
Any read operations that are performed on disks are not subject to any penalty, since all disks can be used for reading operations. But all in turn with write operations. The number of penalties per entry depends on the type of RAID chosen, for example.
In RAID 1, in order for the data to be recorded on a disk, there are two write operations (one record for each disk), and therefore RAID 1 has two penalties.
In RAID 5, in order to write data, 4 operations occur (Reading existing data, RAID parity, Writing new data, Writing new parity), thus a penalty in RAID 5 is 4.
This table provides the penalty value for the more commonly used RAID configurations.
RAID
| I / O Penalty
|
RAID 0
| 1 (Edited by Reader)
|
RAID 1
| 2
|
RAID 5
| four
|
RAID 6
| 6
|
RAID 10
| 2
|
Workload Characteristics
The workload characteristic is generally regarded as the percentage of the read and write operation that the application produces or requires. For example, in VDI, the percentage of IOPS is considered 80-90% per write and 10-20% per read. Understanding the characteristics of the workload is the most critical factor, since the choice of the optimal RAID for the environment depends on this. Applications that use write-intensive operations are good candidates for RAID 10, while applications that use read-intensive operations can be placed on RAID 5.
IOPS calculation
There are two scenarios for calculating IOPS.
One of the scenarios is when there are a certain number of disks, and we want to know how many IOPS these disks will issue?
The second scenario, when we know how many IOPS we need, and we want to calculate the necessary number of disks?
Scenario 1: Calculation of IOPS based on a certain number of disks
Imagine that we have 20 450GB 15k RPM disks. Consider two scenarios for the 80% Write-20% Read workload and another scenario with 20% Write-80% Read. We will also calculate the number of IOPS for both RAID5 and RAID 10.
The formula for calculating IOPS is:
Total Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS =(((Total Raw IOPSĂ—Write %))/(RAID Penalty))+(Total Raw IOPSĂ—Read %)
There is a definition of Raw IOPS and Functional IOPS, just the currents Functional IOPS are the IOPS that include the RAID penalty, and these are the “real” IOPS.
And now we will substitute the numbers and see what happens.
Total Raw IOPS = 170 * 20 = 3400 IOPS (one 15K RPM disk can produce an average of 170 IOPS)
For RAID-5
Option 1 (80% Write 20% Read) Functional IOPS = (((3400 * 0.8)) / (4)) + (3400 * 0.2) = 1360 IOPS
Option 2 (20% Write 80% Read) Functional IOPS = (((3400 * 0.2)) / (4)) + (3400 * 0.8) = 2890 IOPS
For RAID-1
Option 1 (80% Write 20% Read) Functional IOPS = (((3400 * 0.8)) / (2)) + (3400 * 0.2) = 2040 IOPS
Option 2 (20% Write 80% Read) Functional IOPS = (((3400 * 0.2)) / (2)) + (3400 * 0.8) = 3100 IOPS
Scenario 2: Count the number of disks to achieve a certain number of IOPS
Consider the situation where we need to determine the type of RAID and the number of disks to achieve a certain number of 5000 IOPS and with certain workloads, for example 80% Write20% Read and 20% Write80% Read.
Again, to begin with, the formula by which we will consider:
Total number of Disks required = ((Total Read IOPS + (Total Write IOPS*RAID Penalty))/Disk Speed IOPS)
Total IOPS = 5000
Now substitute the numbers.
Note: 80% of 5000 IOPS = 4000 IOPS and 20% of 5000 IOPS = 1000 IOPS with these numbers will be operated.
For RAID-5
Option 1 (80% Write20% Read) - Total Number of disks required = ((1000+ (4000 * 4)) / 170) = 100 disks.
Option 2 (20% Write80% Read) - Total Number of disks required = ((4000+ (1000 * 4)) / 170) = 47 disks approximately.
For RAID-1
Option 1 (80% Write20% Read) - Total Number of disks required = ((1000+ (4000 * 2)) / 170) = 53 disks approximately.
Option 2 (20% Write80% Read) - Total Number of disks required = ((4000+ (1000 * 2)) / 170) = 35 disks approximately.
Understanding and calculating IOPS, RAID penalties, and workload characteristics are very critical aspect when planning. When the load is more intensive on the write beam, choose RAID 10 and vice versa with read loads on RAID 5.
IOPS measurement software
IOmeter - IOPS test
IOzone - IOPS Test
FIO - IOPS Test
CrystalDiskMark - IOPS Test
SQLIO - test suite for calculating performance (IOPS, MB, Latency) under the database server
wmarow - RAID Calculator for IOPS Performance