IOPS (абр. від ; «кількість операцій введення-виведення на секунду»; вимовляється як [ай-опс]) — кількість операцій введення-виведення, які система зберігання даних виконує за 1 с. Один із параметрів, які використовують для порівняння систем зберігання даних (жорстких дисків (НЖМД), твердотільних накопичувачів (SSD), мережевих сховищ SAN, NAS) та оцінення їхньої продуктивності.

Досягнення величин IOPS, які виробники зазначають у документації устаткування, практично не гарантується, навіть якщо спробувати відтворити тестове середовище й для вимірювання IOPS скористатися тим самим програмним забезпеченням.

Програмні засоби для вимірювання IOPS:

(розробка фірми Intel);iometer.org  — официальный сайт проекта «Iometer». ; (від англ. flexible I/O tester); (исходный код доступен на сайте http://git.kernel.dk/ ). .crystalmark.info  — сайт проекта «CrystalDiskMark».

Якщо кілька разів змінити налаштування пристрою і щоразу виміряти IOPS, можна визначити, за яких налаштувань пристрій досягає найвищої продуктивності.

Розмір IOPS залежить від багатьох параметрів:

конструкції та налаштувань пристрою; будови та налаштувань драйвера пристрою; будови та налаштувань драйвера файлової системи; будови та налаштувань операційної системи; умов запуску програми, яка виконує тестування продуктивності (бенчмарку): відношення кількості операцій читання до кількості операцій запису; розміри блоків для читання та запису при послідовному та випадковому доступі; кількість потоків, що виконують читання та запис; розміри черг та буферів; наявність фрагментації у файловій системі; наявність програм, які працюють у фоновому режимі; тощо.

Перед запуском тесту необхідно ознайомитися з рекомендаціями виробника щодо його правильного проведення.

Характеристики продуктивності

Під час тесту виконуються такі операції:

читання даних із блоків, розташованих на носії послідовно (лінійно); запис даних у блоки, розташовані на носії послідовно (лінійно); читання даних із блоків, розташування яких на носії вибирається випадково (довільно); запис даних у блоки, розташування яких на носії вибирається випадково (довільно).

При цьому підраховують кількість операцій, які пристрій здатний виконати за одну секунду.

За послідовного доступу до даних розмір блока зазвичай вибирають великим (наприклад, ), а за довільного доступу — малим (наприклад, ). Параметр Опис Усього IOPS Сумарна кількість операцій введення-виведення за секунду (при виконанні читання і запису) IOPS довільного читання Середня кількість операцій довільного читання за секунду IOPS довільного запису Середня кількість операцій довільного запису за секунду IOPS послідовного читання Середня кількість операцій послідовного читання за секунду IOPS послідовного запису Середня кількість операцій послідовного запису за секунду Величина IOPS залежить від конструкції пристрою. Для жорстких дисків та інших електромеханічних пристроїв під час доступу до даних, які розташовані у випадкових блоках, IOPS залежить перш за все від швидкості роботи механічної частини пристрою (від часу позиціювання головки). Для SSD та подібних до них пристроїв IOPS залежить переважно від алгоритмів прошивки мікроконтролера та швидкості роботи інтерфейсу пам'яті. На обох типах пристроїв кількість IOPS за послідовного доступу до даних (за великого розміру блока) виявляється найбільшою.

Знаючи IOPS та розмір блока, можна обчислити швидкість виконання операцій:

байт_на_секунду = IOPS * розмір_блока_в_байтах.

Швидкість, як правило, вимірюють у МіБ/с. Для перетворення значення з байт/с у МіБ/с його потрібно поділити на .

Продуктивність деяких жорстких дисків можна збільшити, якщо:

збільшити розмір черги, куди потрапляють запити на читання і запис. Обслуговуванням черги займається контролер диска; змусити контролер диска виконувати переупорядкування елементів черги, наприклад, () або NCQ ().

У жорстких дисків величини IOPS на запис та IOPS читання приблизно однакові. У більшості SSD на основі флеш-модулів NAND величина IOPS на запис значно менша за величину IOPS на читання. Це пояснюється тим, що при спробі повторного запису в один і той самий блок запускається збирання сміття, і для збільшення терміну служби носія запис виконується в менш використовуваний блок.

IOPS сучасних SSD з флешпам'яттю значно перевищує IOPS жорстких дисків. Фірма Xssist провела тестування одного з таких SSD — Intel X25-E G1 з такими умовами:

програма: Iometer ; розмір блока: ; режим доступу: довільний; відношення кількості операцій читання до кількості операцій запису (): 70/30; розмір черги (): 4; тривалість тестування: більше .

Результати тесту:

протягом перших величина IOPS зберігалася на рівні ; протягом наступних величина IOPS різко опустилася до і стала потроху знижуватися; протягом наступних і до кінця тесту величина IOPS змінювалася .

Навіть після різкого падіння продуктивності (приблизно через після початку тесту) величина IOPS була значно вищою за IOPS жорсткого диска.

Приклади Приблизні значення IOPS (випадкового доступу) для жорстких дисків. Пристрій Тип IOPS Інтерфейс 7200 об/хв HDD ~75-100 IOPS SATA 10 000 об/хв HDD ~125-150 IOPS SATA 10 000 об/хв HDD ~140 IOPS SAS 15 000 об/хв HDD ~175-210 IOPS SAS Приблизні значення IOPS для твердотільних накопичувачів (умови ідеальні; час виконання операцій невеликий). Швидкість може знизитись у кілька разів за багаторазового повторення операцій запису у випадкові блоки. Пристрій Тип IOPS Інтерфейс Intel G2 MLC SSD ~8600 IOPS SATA OCZ Vertex 3 SSD ~60 000 IOPS (довільний запис 4K) SATA OCZ Vertex 3 MAX IOPS SSD ~75'000 IOPS (довільний запис 4K) SATA OCZ Vertex 4 SSD ~120 000 IOPS (довільний запис 4K) SATA 6 Гбіт/с OCZ RevoDrive 3 X2 SSD ~200 000 IOPS (довільний запис 4K) PCIe OCZ Z-Drive R4 CloudServ SSD ~500 000 IOPS PCIe Intel Optane SSD 905P SSD ~555 000 IOPS PCIe nvNITROTM Storage Accelerator ~1 460 000 IOPS PCIe

Див. також MIPS (кількість мільйонів інструкцій за секунду)

Примітки

Посилання Що таке IOPS?