IOPS (IOPS)

Перейти к навигации Перейти к поиску

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

Достижение величин IOPS, указанных в документации производителями оборудования, на практике не гарантируется[1][2], даже если попытаться воспроизвести тестовую среду и для измерения IOPS использовать то же программное обеспечение.

Программное обеспечение для измерения IOPS:

Если несколько раз менять настройки устройства и каждый раз измерять IOPS, можно определить настройки, при которых устройство достигает максимальной производительности.

Величина IOPS зависит от многих параметров:

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

Характеристики производительности

[править | править код]
Последовательный и произвольный доступ к носителю данных

Во время теста выполняются следующие операции:

  • чтение данных из блоков, расположенных на носителе последовательно (линейно);
  • запись данных в блоки, расположенные на носителе последовательно (линейно);
  • чтение данных из блоков, положение которых на носителе выбирается случайно (произвольно);
  • запись данных в блоки, положение которых на носителе выбирается случайно (произвольно).

При этом выполняется подсчёт количества операций, которое устройство способно выполнить за одну секунду.

При последовательном доступе к данным размер блока, обычно, выбирается больши́м (например, 128 КиБ). При произвольном доступе к данным размер блока, обычно, выбирается маленьким (например, 4 КиБ).

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

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

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

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

Скорость, обычно, измеряется в Мбайт/с. Для преобразования из Байт/с в МБайт/с нужно поделить на 1 048 576.

Производительность некоторых жёстких дисков можно увеличить, если:

  • увеличить размер очереди, в которую попадают запросы на чтение и запись. Обслуживанием очереди занимается контроллер диска;
  • заставить контроллер диска выполнять переупорядочивание элементов очереди, например, TCQ (англ. tagged command queuing) или NCQ (англ. native command queuing).

У жёстких дисков величины IOPS на запись и IOPS чтение примерно одинаковые. У большинства SSD на основе флэш-модулей NAND величина IOPS на запись значительно меньше величины IOPS на чтение. Это объясняется тем, что при попытке повторной записи в один и тот же блок запускается сборка мусора, и запись выполняется в менее используемый блок для увеличения срока службы носителя[7][8][9].

IOPS современных SSD с flash памятью намного выше IOPS жёстких дисков. Фирма «Xssist» провела тестирование одного из таких SSD — Intel X25-E 64 GB G1 со следующими условиями:

  • программа: Iometer;
  • размер блока: 4 KB;
  • режим доступа: произвольный;
  • отношение количества операций чтения к количеству операций записи (англ. 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 (случайного доступа) для жёстких дисков[11][12].

устройство тип IOPS интерфейс
7'200 об/мин SATA-диски HDD ~75−100 IOPS SATA 3 Гбит/с
10'000 об/мин SATA-диски HDD ~125−150 IOPS SATA 3 Гбит/с
10'000 об/мин SAS-диски HDD ~140 IOPS SAS
15'000 об/мин SAS-диски HDD ~175−210 IOPS SAS

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

устройство тип IOPS интерфейс
Intel X25-M G2 MLC SSD ~8'600 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[en] ~1'460'000 IOPS PCIe
  • MIPS (количество миллионов инструкций, выполняемых за секунду).
  • Performance per watt (англ.).

Примечания

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