IOPS

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

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

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

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

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

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

[ред. | ред. код]
Послідовний та довільний доступ до носія даних

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

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

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

За послідовного доступу до даних розмір блока зазвичай вибирають великим (наприклад, 128 КіБ), а за довільного доступу — малим (наприклад, 4 КіБ).

Параметр Опис
Усього IOPS Сумарна кількість операцій введення-виведення за секунду (при виконанні читання і запису)
IOPS довільного читання Середня кількість операцій довільного читання за секунду
IOPS довільного запису Середня кількість операцій довільного запису за секунду
IOPS послідовного читання Середня кількість операцій послідовного читання за секунду
IOPS послідовного запису Середня кількість операцій послідовного запису за секунду

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

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

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

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

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

  • збільшити розмір черги, куди потрапляють запити на читання і запис. Обслуговуванням черги займається контролер диска;
  • змусити контролер диска виконувати переупорядкування елементів черги, наприклад, TCQ[en] (англ. tagged command queuing) або NCQ (англ. native command queuing).

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

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

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

Результати тесту[10]:

  • протягом перших 8 хв величина IOPS зберігалася на рівні 10 000 IOPS;
  • протягом наступних 42 хв величина IOPS різко опустилася до 4000 IOPS і стала потроху знижуватися;
  • протягом наступних 50 хв і до кінця тесту величина IOPS змінювалася від 3000 IOPS до 4000 IOPS .

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

Приклади

[ред. | ред. код]

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

Пристрій Тип IOPS Інтерфейс
SATA-диски 7200 об/хв HDD ~75-100 IOPS SATA 3 Гбіт/с
SATA-диски 10 000 об/хв HDD ~125-150 IOPS SATA 3 Гбіт/с
SAS-диски 10 000 об/хв HDD ~140 IOPS SAS
SAS-диски 15 000 об/хв HDD ~175-210 IOPS SAS

Приблизні значення IOPS для твердотільних накопичувачів (умови ідеальні; час виконання операцій невеликий). Швидкість може знизитись у кілька разів за багаторазового повторення операцій запису у випадкові блоки.

Пристрій Тип IOPS Інтерфейс
Intel X25-M G2 MLC SSD ~8600 IOPS SATA 3 Гбіт/с
OCZ Vertex 3 SSD ~60 000 IOPS (довільний запис 4K) SATA 6 Гбіт/с
OCZ Vertex 3 MAX IOPS SSD ~75'000 IOPS (довільний запис 4K) SATA 6 Гбіт/с
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
Everspin[en] nvNITROTM ES1GB-N03 Storage Accelerator ~1 460 000 IOPS PCIe

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. а б Lowe, Scott (12 лютого 2010). Calculate IOPS in a storage array. techrepublic.com. Архів оригіналу за 29 червня 2011. Процитовано 3 липня 2011.
  2. Getting The Hang Of IOPS v1.3. 3 серпня 2012. Архів оригіналу за 9 серпня 2013. Процитовано 15 серпня 2013.
  3. iometer.org Архівовано грудень 30, 2011 на сайті Wayback Machine. — официальный сайт проекта «Iometer».
  4. Axboe, Jens. Flexible IO Tester. Архів оригіналу за 12 травня 2010. Процитовано 4 червня 2010. (исходный код доступен на сайте http://git.kernel.dk/ Архівовано листопад 2, 2008 на сайті Wayback Machine.).
  5. crystalmark.info Архівовано січень 7, 2012 на сайті Wayback Machine. — сайт проекта «CrystalDiskMark».
  6. Smith, Kent (11 серпня 2009). Benchmarking SSDs: The Devil is in the Preconditioning Details (PDF). SandForce.com. Архів (PDF) оригіналу за 29 червня 2015. Процитовано 5 травня 2015.
  7. Hu, X.-Y. and E. Eleftheriou, R. Haas, I. Iliadis, R. Pletka (2009). Write Amplification Analysis in Flash-Based Solid State Drives (PDF). IBM. CiteSeerX: 10.1.1.154.8668. Архів оригіналу (PDF) за 4 жовтня 2013. Процитовано 2 червня 2010.
  8. SSDs - Write Amplification, TRIM and GC (PDF). OCZ Technology. Архів оригіналу (PDF) за 26 травня 2012. Процитовано 31 травня 2010.
  9. Intel Solid State Drives. Intel. Архів оригіналу за 26 травня 2010. Процитовано 31 травня 2010.
  10. Intel X25-E 64GB G1, 4KB Random IOPS, iometer benchmark. 27 березня 2010. Архів оригіналу за 3 травня 2010. Процитовано 1 квітня 2010.

Посилання

[ред. | ред. код]