📜 ⬆️ ⬇️

IOPS - what it is and how to count it

iops 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.
')
image

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

Source: https://habr.com/ru/post/164325/


All Articles