Что же такое IOPS, и как его считать?

Что же такое IOPS

Добрый день! В современном мире цифровых технологий, где скорость обработки информации становится критически важной, понимание параметра IOPS помогает осознанно подходить к выбору систем хранения данных, домашнего диска и оптимизации их работы. Зачастую отдавая большое количество денег за оборудование, хочется быть уверенным, что оно сможет удовлетворить все те потребности, которые вы на него возлагаете. Сегодня мы рассмотрим понятие IOPS со всех сторон.

IOPS (Input/Output Operations Per Second) — это метрика производительности систем хранения данных, жестких дисков и твердотельных SSD, которая измеряет количество операций ввода-вывода, выполняемых устройством за одну секунду. Этот параметр стал особенно важен с развитием технологий хранения данных и ростом требований к производительности в различных сферах — от корпоративных баз данных до виртуальных сред и высоко нагруженных веб-приложений.

Советую почитать про системы хранения данных

Принцип IOPS и характеристики производительности

IOPS представляет собой количественный показатель, отражающий способность системы хранения данных обрабатывать запросы на чтение и запись информации. Каждая такая "операция" — это работа с блоком данных определенного размера, обычно составляющим 4 КБ для случайного доступа и 128 КБ и более для последовательных операций

Напомню, что когда вы создаете разделы на RAID контроллерах, то там на уровне LUN как раз таки и задают размер блока исходя их того, что на нем будет храниться.

Основные характеристики производительности IOPS включают:

  • Общие IOPS (Total IOPS): Суммарное количество операций ввода-вывода в секунду при выполнении как чтения, так и записи.

  • IOPS случайного чтения (Random Read IOPS): Количество операций чтения из случайных областей носителя в секунду.

  • IOPS случайной записи (Random Write IOPS): Количество операций записи в случайные области носителя в секунду.

  • IOPS последовательного чтения (Sequential Read IOPS): Количество операций последовательного чтения данных в секунду.

  • IOPS последовательной записи (Sequential Write IOPS): Количество операций последовательной записи данных в секунду.

Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа.

операции линейного (последовательного) и произвольного (случайного) доступа

Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт.

Тип операцииРазмер блокаТипичное использование
Случайное чтение/запись4 КБРабота с небольшими файлами, базы данных
Последовательное чтение/запись128 КБ и болееПередача больших файлов, резервное копирование

На производительность IOPS влияет множество факторов: конструкция и настройки устройства, драйверы, параметры файловой системы, настройки ОС, соотношение операций чтения/записи, размеры блоков, количество потоков, размеры очередей и буферов, фрагментация и фоновые процессы

Методы расчета IOPS для HDD и SSD

Для жестких дисков (HDD)

Производительность HDD в основном определяется механическими характеристиками — скоростью вращения пластин и временем позиционирования головок. Расчет теоретического IOPS для HDD можно выполнить по формуле:

IOPS = 1 / (средняя задержка + среднее время поиска)

Пример расчета: Для диска Seagate ST500DM002-1BC142 со средним временем задержки 4.16 мс и средним временем поиска 8.5 мс:

IOPS = 1 / (0.00416 + 0.0085) = 79 IOPS

Таблица: Примерные значения IOPS для HDD

Тип HDDСкорость вращенияПримерный IOPSИнтерфейс
SATA-диски7,200 об/мин75-100 IOPSSATA 3 Гбит/с
SATA-диски10,000 об/мин125-150 IOPSSATA 3 Гбит/с
SAS-диски10,000 об/мин~140 IOPSSAS
SAS-диски15,000 об/мин175-210 IOPSSAS

Для твердотельных накопителей (SSD)

SSD демонстрируют значительно более высокие показатели IOPS благодаря отсутствию механических частей. Однако их производительность может значительно снижаться при длительных операциях записи из-за процессов сборки мусора и выравнивания износа.

Таблица: Примерные значения IOPS для SSD

Модель SSDТипIOPSИнтерфейс
Intel X25-M G2 MLCSSD~8,600 IOPSSATA 3 Гбит/с
OCZ Vertex 3SSD~60,000 IOPSSATA 6 Гбит/с
OCZ RevoDrive 3 X2SSD~200,000 IOPSPCIe
OCZ Z-Drive R4 CloudServSSD~1,400,000 IOPSPCIe
Samsung 870 EVOSSD~98,000 IOPSSATA 3
Samsung 980 PRONVMe~1,000,000 IOPSPCIe 4.0 x4
WD Black SN850NVMe~700,000 IOPSPCIe 4.0 x4
Samsung 970 EVO PlusNVMe~620,000 IOPSPCIe 3.0 x4
SK Hynix Platinum P41NVMe~1,400,000 IOPSPCIe 4.0 x4
Micron 9650 SSDNVMe~5,500,000 IOPSPCIe 6.0 x4
Azure Premium SSD v2NVMe~80,000 IOPSNVMe
Azure Ultra DiskNVMe~400,000 IOPSNVMe

Важное отличие SSD от HDD — существенная разница между производительностью чтения и записи, что связано с особенностями работы NAND-памяти

Поставщики систем хранения часто ссылаются на IOPS для характеристики производительности твердотельных накопителей (SSD), жестких дисков (HDD) и сетей хранения данных. Однако число операций ввода-вывода в секунду не является фактическим эталонным тестом, а цифры, предлагаемые поставщиками, могут не соответствовать реальной производительности.

Наряду со скоростью передачи, которая измеряет, насколько быстро данные могут быть переданы из непрерывных хранилищ, IOPS можно использовать для измерения производительности хранилища. В то время как скорость передачи измеряется в байтах, а IOPS измеряется как целое число.

В качестве измерения IOPS можно сравнить с числом оборотов двигателя автомобиля в минуту. Если автомобиль находится на нейтралке, и утверждать, что двигатель способен вращаться со скоростью 10 000 об/мин в этот момент, бессмысленно. Без учета размера блока данных (или размера ввода-вывода), активности чтения/записи или потока ввода-вывода, IOPS как автономное измерение мало что говорит, так, что НЕ ВЕДИТЕСЬ на маркетинг

Жесткие диски используют стандартное уравнение для определения операций ввода-вывода в секунду, но твердотельные накопители работают иначе. Для жестких дисков IOPS зависит от времени поиска, а твердотельные накопители в первую очередь зависят от внутреннего контроллера устройства. Производительность SSD меняется со временем, достигая пика на ранней стадии. Однако даже после перехода в устойчивое состояние твердотельные накопители по-прежнему превосходят жесткие диски с точки зрения операций ввода-вывода в секунду. Жесткие диски также борются с более высокой задержкой и более длительным временем чтения/записи.

RAID-пенальти для разных типов массивов

RAID-пенальти — это дополнительная нагрузка на систему хранения, связанная с обеспечением избыточности и отказоустойчивости в RAID-массивах. Операции чтения обычно не несут пенальти, так как могут выполняться с любого диска, а вот операции записи требуют дополнительных действий в зависимости от типа RAID.

Напомню, какие виды RAID бывают и как они строятся

Тип RAIDПенальти записиОбъяснение
RAID 01Отсутствие избыточности, данные записываются один раз
RAID 12Данные записываются на два зеркальных диска
RAID 54Требуются операции: чтение старых данных, чтение четности, запись новых данных, запись новой четности
RAID 66Аналогично RAID 5, но с двумя контролями четности
RAID 102Комбинация зеркалирования и страйпинга

IOPS в контексте современных систем хранения: практические примеры

В современных системах хранения данных IOPS становится критическим параметром для различных сценариев использования:

Виртуальные среды (VDI)

В виртуальных средах типичное соотношение операций составляет 80-90% записи и только 10-20% чтения. Это требует использования RAID-массивов с низким пенальти записи (например, RAID 10) и SSD-накопителей с высокими показателями случайной записи 1.

Понимание характеристики рабочей нагрузки является наиболее критическим фактором, поскольку от этого и зависит выбор оптимального RAID для среды. Приложения которые интенсивно используют операции на запись являются хорошими кандидатами для RAID 10, тогда как приложения которые интенсивно используют операции на чтение могут быть размещены на RAID 5.

Базы данных

СУБД часто генерируют интенсивные рабочие нагрузки со случайным доступом. Для систем управления базами данных рекомендуется использовать массивы с высокими показателями IOPS случайного чтения/записи.

Веб-хостинг и высоконагруженные сайты

Современные веб-сайты используют многоуровневое кэширование, но в определенных сценариях (холодный кэш, большие объемы данных, персонализированный контент) производительность диска становится критическим фактором 8.

Пример расчета требований для веб-сервера:

  • Требуется: 600 IOPS чтения + 300 IOPS записи

  • Используется RAID 5 (пенальти = 4)

  • Общие требуемые IOPS = 600 + (300 × 4) = 1800 IOPS 6

Анализ больших данных

Обработка больших объемов данных требует как высоких показателей последовательного чтения/записи для обработки больших файлов, так и случайного доступа для быстрого поиска и агрегации. В качестве примера сравним, как две рабочие нагрузки, обращающиеся к одному и тому же количеству данных, требуют существенно разного количества операций ввода-вывода в секунду. Первая рабочая нагрузка требует чтения десяти файлов размером 750 МБ, 7,5 ГБ, а передача занимает 100 секунд. Это означает, что скорость передачи данных составляет 75 МБ/с и потребляется 10 операций ввода-вывода в секунду, что вполне соответствует возможностям одного жесткого диска. Вторая рабочая нагрузка требует чтения десяти тысяч файлов 750 КБ, такого же объема данных, 7,5 ГБ, но потребляет 10 000 операций ввода-вывода в секунду. Поскольку обычный диск не может генерировать более 200 операций ввода-вывода в секунду, этот запрос не будет выполнен за те же 100 секунд. Это пример того, как разные рабочие нагрузки могут требовать существенно разной производительности при использовании одной и той же емкости хранилища.

Формулы расчета IOPS

Есть два сценария вычисления IOPS-ов. Один из сценариев это когда есть определенное число дисков, и мы хотим знать, сколько IOPS эти диски выдадут? Второй сценарий, когда мы знаем сколько нам IOPS-ов надо, и хотим вычислить нужное количество дисков?

Правильный способ измерить производительность массива all-flash или даже гибридного массива - это разработать статистику производительности на основе конкретных рабочих нагрузок или сочетания рабочих нагрузок. Например, запустите тест производительности SQL и тест производительности VDI одновременно в одной и той же системе хранения и вместо составления отчетов о потребленных IOPS создайте отчет о данных, которые являются более ощутимыми и актуальными для центра обработки данных. В этом случае это может быть количество одновременных пользователей SQL и поддерживаемых экземпляров VDI при сохранении приемлемого времени отклика.

Functional IOPS = (((Total Raw IOPS × % Write)) / (RAID Penalty)) + (Total Raw IOPS × % Read)

  • Total Raw IOPS = IOPS диска × количество дисков

  • % Write = процент операций записи

  • % Read = процент операций чтения 1

Предположим, что у нас есть 20 дисков. Total Raw IOPS = 170*20 = 3400 IOPS (один 15K RPM диск может выдать в среднем 170 IOPS).

RAIDHDD/SSD (шт)Формула
RAID 520Total Raw IOPS = 170*20 = 3400 IOPS.
Вариант 1 - (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(4))+(3400*0.2) = 1360 IOPS
Вариант 2 - (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(4))+(3400*0.8) = 2890 IOPS
RAID 120Total Raw IOPS = 170*20 = 3400 IOPS.
Вариант 1 (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(2))+(3400*0.2) = 2040 IOPS
Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(2))+(3400*0.8) = 3100 IOPS

Расчет минимального количества дисков

Подсчет количества дисков для достижения определенного количества IOPS. Рассмотрим ситуацию где нам надо определить тип RAID-а и количества дисков для достижения определенного количества IOPS-ов 5000 и с определенными рабочими нагрузками, например 80%Write20%Read и 20%Write80% Read.

Количество дисков = (Требуемые IOPS чтения + (Требуемые IOPS записи × Пенальти RAID)) / IOPS одного диска

Пример расчета для нагрузки 80% записи, 20% чтения:

  • Требуется: 5000 IOPS

  • RAID 5: количество дисков = (1000 + (4000 × 4)) / 170 ≈ 100 дисков

  • RAID 10: количество дисков = (1000 + (4000 × 2)) / 170 ≈ 53 диска

Понимание и подсчет IOPS, RAID пенальти, и характеристик рабочих нагрузок очень критичны аспект при планировании. Когда нагрузка более интенсивна на запись луче выбирать RAID 10 и наоборот при нагрузках на чтение RAID 5.

Обновляемая производительность

Как указывалось выше, большинство массивов all-flash обеспечат большую производительность, чем большинство центров обработки данных могут использовать сегодня. Но сегодня ключевое слово здесь. По мере того, как плотность виртуальных серверов и виртуальных рабочих столов, а также количество пользователей на экземпляр базы данных продолжают масштабироваться, центрам обработки данных будет требоваться все больше и больше производительности. Сам флэш-носитель станет немного быстрее, но ключевым препятствием на пути к увеличению производительности станет контроллер хранилища и эффективность программного обеспечения хранилища.

Функции и возможности программного обеспечения хранения увеличивают производительность флеш-памяти. Эффективность этого программного обеспечения хранения в том, как оно выполняет эти различные возможности, имеет решающее значение для общей производительности. К счастью, поставщик all-flash имеет доступ к постоянно растущей вычислительной мощности, которая может маскировать большую часть накладных расходов на программное обеспечение хранения. Тем не менее, очень важно, чтобы поставщик флэш-памяти мог предоставить возможность обновления для своего аппаратного обеспечения контроллера, чтобы их клиенты могли воспользоваться преимуществами увеличивающейся мощности каждой итерации процессоров Intel.

Интересные факты, ситуации иаспекты, которые важно учитывать

  • Эффект уменьшения производительности SSD: В ходе тестирования Intel X25-E 64 GB G1 было обнаружено, что после первых 8 минут теста с высокой нагрузкой IOPS снижался с 10,000 до 3,000-4,000 IOPS и стабилизировался на этом уровне. Даже после снижения производительность SSD значительно превосходила HDD.

  • Влияние размера блока: Увеличение размера блока приводит к уменьшению IOPS, так как на обработку каждой операции требуется больше времени.

  • Парадокс кэширования: Современные системы активно используют кэширование, что минимизирует дисковые операции. Однако при "холодном" кэше (после перезагрузки) или работе с большими объемами данных, не помещающимися в кэш, производительность IOPS становится критической.

  • Многофакторность производительности: На реальные показатели IOPS влияет множество факторов — от конструкции устройства до "погоды на Солнце"

  • Помимо IOPS, критически важным параметром является задержка (Latency) — время выполнения отдельной операции ввода-вывода. Низкая задержка особенно важна для приложений, чувствительных к времени отклика, таких как базы данных и системы реального времени.
  • Влияние интерфейсов - Развитие интерфейсов (SATA, SAS, PCIe) значительно расширяет потенциал систем хранения. Накопители PCIe демонстрируют на порядок лучшую производительность по сравнению с SATA-устройствами.
  • Виртуализация и облачные среды - В виртуализации и cloud-средах провайдеры часто ограничивают IOPS для виртуальных машин. При выборе хостинга важно учитывать не только объем дискового пространства, но и показатели IOPS.
  • Проактивный мониторинг - Регулярный мониторинг дисковых операций с помощью инструментов вроде iotop позволяет заблаговременно выявлять потенциальные проблемы и планировать масштабирование систем хранения.

Программы для измерения IOPS

IOmeterhttp://www.iometer.org/ - тест IOPS
IOzonehttp://www.iozone.org/ - тест IOPS
FIOhttp://freecode.com/projects/fio - тест IOPS
CrystalDiskMarkhttp://crystalmark.info/software/CrystalDiskMark/index-e.html - тест IOPS
SQLIOhttp://www.microsoft.com/en-us/download/details.aspx?id=20163 - набор тестов для расчета производительности (IOPS, MB, Latency) под сервера БД
wmarow —  http://wmarow.com/strcalc/ - калькулятор RAID групп по производительности IOPS

Немного выводов

IOPS остается фундаментальным показателем производительности систем хранения данных, несмотря на развитие технологий кэширования и увеличение объемов оперативной памяти. Понимание сущности IOPS, методов его расчета и факторов влияния позволяет проектировать эффективные и сбалансированные системы хранения, отвечающие требованиям современных приложений и сервисов.

При проектировании систем хранения важно учитывать не только пиковые значения IOPS, но и характер рабочей нагрузки, соотношение операций чтения/записи, тип используемого RAID-массива и задержку выполнения операций. Комплексный подход к оценке производительности дисковых систем позволяет избежать "узких мест" и обеспечить стабильную работу приложений даже в условиях интенсивных нагрузок.

Как показывает практика, инвестиции в оптимальную конфигурацию систем хранения окупаются за счет повышения отзывчивости приложений, снижения времени простоя и возможности масштабирования под растущие бизнес-потребности.

Оцените статью
Настройка серверов windows и linux
Добавить комментарий