IOPS — количество операций ввода-вывода в секунду. Одна из основных характеристик для оценки производительности проектируемой или уже существующей системы хранения данных, RAID-массива, HDD или SSD диска. Другими словами это количество блоков, которое успевает записаться или считаться с устройства в единицу времени. Чем больше IOPS, тем более производительная система.
IOPS — понятие расплывчатое, указанные производителем значения могут на практике отличаться в разы. Дело в том, что величина IOPS зависит от многих факторов:
- Конструкция диска.
- Настройка диска.
- Конструкция массива.
- Настройка массива.
- Настройка файловой системы.
- Драйвера.
- Конфигурация и тип RAID-массива.
- Количество дисков в массиве.
- Наличие и размер кеша.
- Гибридные диски.
- Качество диска.
- Типы интерфейсов.
- Количество интерфейсов.
- Пропускная способность интерфейсов.
- Размер блока.
- RAID-контроллер.
- Условия запуска программы, которая измеряет IOPS.
- Наличие других фоновых задач.
- Размеры очередей и буферов.
- Погода на Марсе.
Принято выделять несколько типов IOPS:
- IOPS последовательного чтения.
- IOPS последовательной записи.
- IOPS произвольного чтения.
- IOPS произвольной записи.
- TOTAL IOPS — суммарное значение IOPS чтения и записи (отличается для последовательного и произвольного доступа).
IOPS для HDD
Для жёстких дисков величина IOPS более или менее постоянная.
- 7200 об/мин SATA 3 ~75-100 IOPS
- 10000 об/мин SATA 3 ~125-150 IOPS
- 10000 об/мин SAS ~140 IOPS
- 15000 об/мин SAS ~175-200 IOPS
IOPS для SSD и гибридных дисков
Зависит от модели и интерфейса. PCIe на порядок быстрее чем SATA.
Вычисление IOPS для RAID массива
Если мы знаем IOPS диска, то можем вычислить IOPS RAID массива.
RAID пенальти. При операции чтения данных из любого массива происходит одна операция, собственно, операция чтения, поэтому на чтение RAID пенальти отсутствует. При записи ситуация иная для каждого типа массива.
- RAID0 — 1
- RAID1 — 2
- RAID10 — 2
- RAID5 — 4
- RAID6 — 6
T = (I * N * W)/P + I * N * R
Где T — вычисляемое значение IOPS массива, I — IOPS диска, N — количество дисков, P — пенальти, W — процент записи, R — процент чтения.
Пример 1. RAID5 массив из 10 дисков. IOPS одного диска — 200. Посчитаем IOPS массива при 20% операций чтения и 80% операций записи.
T = (200 * 10 * 0.8)/4 + 200 * 10 * 0.2
T = 800 IOPS
Пример 2. RAID5 массив из 10 дисков. IOPS одного диска — 200. Посчитаем IOPS массива при 80% операций чтения и 20% операций записи.
T = (200 * 10 * 0.2)/4 + 200 * 10 * 0.8
T = 1700 IOPS
Пример 3. RAID1 массив из 10 дисков. IOPS одного диска — 200. Посчитаем IOPS массива при 20% операций чтения и 80% операций записи.
T = (200 * 10 * 0.8)/2 + 200 * 10 * 0.2
T = 1200 IOPS
Пример 4. RAID1 массив из 10 дисков. IOPS одного диска — 200. Посчитаем IOPS массива при 80% операций чтения и 20% операций записи.
T = (200 * 10 * 0.2)/2 + 200 * 10 * 0.8
T = 1800 IOPS
Вычисление требуемого количества дисков для достижения заданного IOPS
N = T / ( I * (W/P + R))
Где N — вычисляемое количество дисков, T — IOPS массива, I — IOPS диска, P — пенальти, W — процент записи, R — процент чтения.
Пример. Сколько нужно дисков, чтобы получить 1700 IOPS при использовании RAID5 массива (80% операций чтения и 20% операций записи, IOPS одного диска — 200)?
N = 1700 / ( 200 * (0.2/4 + 0.8))
N = 10 дисков
Ответ совпадает с примером 2 выше.
Источник:
https://internet-lab.ru/iops
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.