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 000 000.

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

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

Размер очереди у жёстких дисков SATA для предприятий (например, Western Digital Raptor или Seagate Barracuda NL) увеличен примерно в два раза[7].

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

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

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

Результаты теста[11]:

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

Даже после резкого падения производительности (примерно через 50 минут после начала теста) величина IOPS была намного выше IOPS жёсткого диска.

У контроллеров фирмы «SandForce» (англ.), используемых в некоторых SSD (например, в OCZ RevoDrive 3 x2 PCIe), величина IOPS при записи не подвержена колебаниям и близка к IOPS при чтении[12].

Примеры[править | править вики-текст]

Приблизительные значения IOPS для жёстких дисков.

Устройство Тип 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 для SSD (условия идеальные; время выполнения операций небольшое). Скорость может снизиться в разы при многократном повторении операций записи в случайные блоки.

Устройство Тип 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

См. также[править | править вики-текст]

  • MIPS (количество миллионов инструкций, выполняемых за секунду).
  • Performance per watt (англ.).

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]

  1. 1 2 Lowe, Scott Calculate IOPS in a storage array. techrepublic.com (12 февраля 2010). Проверено 3 июля 2011.
  2. Getting The Hang Of IOPS v1.3 (3 августа 2012). Проверено 15 августа 2013.
  3. iometer.org — официальный сайт проекта «Iometer».
  4. Axboe, Jens Flexible IO Tester. Проверено 4 июня 2010. (исходный код доступен на сайте http://git.kernel.dk/).
  5. crystalmark.info — сайт проекта «CrystalDiskMark».
  6. Smith, Kent Benchmarking SSDs: The Devil is in the Preconditioning Details. SandForce.com (11 августа 2009). Проверено 5 мая 2015.
  7. SATA in the Enterprise - A 500 GB Drive Roundup | StorageReview.com - Storage Reviews. StorageReview.com (13 июля 2006). Проверено 13 мая 2013.
  8. 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.
  9. SSDs - Write Amplification, TRIM and GC. OCZ Technology. Проверено 31 мая 2010.
  10. Intel Solid State Drives. Intel. Проверено 31 мая 2010.
  11. Intel X25-E 64GB G1, 4KB Random IOPS, iometer benchmark (27 марта 2010). Проверено 1 апреля 2010.
  12. OCZ RevoDrive 3 x2 PCIe SSD Review – 1.5GB Read/1.25GB Write/200,000 IOPS As Little As $699 (28 июня 2011). Проверено 30 июня 2011.