Что же такое IOPS, и как его считать?
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. IOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения/записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Характеристики производительности
Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа.
Что же такое IOPS, и как его считать
Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт.
Ниже приведены основные характеристики:
Что же такое IOPS, и как его считать
Что же такое IOPS, и как его считать
Что же такое IOPS, и как его считать
Поставщики систем хранения часто ссылаются на IOPS для характеристики производительности твердотельных накопителей (SSD), жестких дисков (HDD) и сетей хранения данных. Однако число операций ввода-вывода в секунду не является фактическим эталонным тестом, а цифры, предлагаемые поставщиками, могут не соответствовать реальной производительности.
Наряду со скоростью передачи, которая измеряет, насколько быстро данные могут быть переданы из непрерывных хранилищ, IOPS можно использовать для измерения производительности хранилища. В то время как скорость передачи измеряется в байтах, а IOPS измеряется как целое число.
В качестве измерения IOPS можно сравнить с числом оборотов двигателя автомобиля в минуту. Если автомобиль находится на нейтралке, и утверждать, что двигатель способен вращаться со скоростью 10 000 об/мин в этот момент, бессмысленно. Без учета размера блока данных (или размера ввода-вывода), активности чтения/записи или потока ввода-вывода, IOPS как автономное измерение мало что говорит, так, что НЕ ВЕДИТЕСЬ на маркетинг.
IOPS в SSD и HDD
Жесткие диски используют стандартное уравнение для определения операций ввода-вывода в секунду, но твердотельные накопители работают иначе. Для жестких дисков IOPS зависит от времени поиска, а твердотельные накопители в первую очередь зависят от внутреннего контроллера устройства. Производительность SSD меняется со временем, достигая пика на ранней стадии. Однако даже после перехода в устойчивое состояние твердотельные накопители по-прежнему превосходят жесткие диски с точки зрения операций ввода-вывода в секунду. Жесткие диски также борются с более высокой задержкой и более длительным временем чтения/записи.
RAID пенальти
В RAID 1 чтобы данные записались на диск, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.
В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4.
В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации.
Что же такое IOPS, и как его считать
Характеристика рабочих нагрузок
Характеристика рабочей нагрузки в основном рассматривается как процент операции чтений и записей, которые вырабатывает или требует приложение. Например, в среде VDI процентное соотношение IOPS рассматривается как 80-90% на запись и 10-20% на чтение. Понимание характеристики рабочей нагрузки является наиболее критическим фактором, поскольку от этого и зависит выбор оптимального RAID для среды. Приложения которые интенсивно используют операции на запись являются хорошими кандидатами для RAID 10, тогда как приложения которые интенсивно используют операции на чтение могут быть размещены на RAID 5.
В качестве примера сравним, как две рабочие нагрузки, обращающиеся к одному и тому же количеству данных, требуют существенно разного количества операций ввода-вывода в секунду. Первая рабочая нагрузка требует чтения десяти файлов размером 750 МБ, 7,5 ГБ, а передача занимает 100 секунд. Это означает, что скорость передачи данных составляет 75 МБ/с и потребляется 10 операций ввода-вывода в секунду, что вполне соответствует возможностям одного жесткого диска. Вторая рабочая нагрузка требует чтения десяти тысяч файлов 750 КБ, такого же объема данных, 7,5 ГБ, но потребляет 10 000 операций ввода-вывода в секунду. Поскольку обычный диск не может генерировать более 200 операций ввода-вывода в секунду, этот запрос не будет выполнен за те же 100 секунд. Это пример того, как разные рабочие нагрузки могут требовать существенно разной производительности при использовании одной и той же емкости хранилища.
Вычисление IOPS
Есть два сценария вычисления IOPS-ов. Один из сценариев это когда есть определенное число дисков, и мы хотим знать, сколько IOPS эти диски выдадут? Второй сценарий, когда мы знаем сколько нам IOPS-ов надо, и хотим вычислить нужное количество дисков?
Правильный способ измерить производительность массива all-flash или даже гибридного массива — это разработать статистику производительности на основе конкретных рабочих нагрузок или сочетания рабочих нагрузок. Например, запустите тест производительности SQL и тест производительности VDI одновременно в одной и той же системе хранения и вместо составления отчетов о потребленных IOPS создайте отчет о данных, которые являются более ощутимыми и актуальными для центра обработки данных. В этом случае это может быть количество одновременных пользователей SQL и поддерживаемых экземпляров VDI при сохранении приемлемого времени отклика.
Сценарий 1: Вычисление IOPS исходя из определенного кол-ва дисков
Представим что у нас есть 20 450GB 15к RPM дисков. Рассмотрим два сценария Рабочей нагрузки 80%Write-20%Read и другой сценарий с 20%Write-80%Read. Также мы вычислим количество IOPS как для RAID5 и RAID 10.
Формула для расчета IOPS:
Total Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS =(((Total Raw IOPS×Write %))/(RAID Penalty))+(Total Raw IOPS×Read %)
Есть определение Raw IOPS и Functional IOPS, как раз токи Functional IOPS-ы и есть те IOPS-ы которые включают в себя RAID пенальти, и это и есть “настоявшие” IOPS-ы.
А теперь подставим цифры и посмотрим что получится.
- Total Raw IOPS = 170*20 = 3400 IOPS (один 15K RPM диск может выдать в среднем 170 IOPS)
- Для RAID-5
Вариант 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
Вариант 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
Сценарий 2: Подсчет кол-ва дисков для достижения определенного кол-ва IOPS
Рассмотрим ситуацию где нам надо определить тип RAID-а и количества дисков для достижения определенного количества IOPS-ов 5000 и с определенными рабочими нагрузками, например 80%Write20%Read и 20%Write80% Read.
Опять же для начала формула по которой и будем считать:
Total number of Disks required = ((Total Read IOPS + (Total Write IOPS*RAID Penalty))/Disk Speed IOPS)
- Total IOPS = 5000
Теперь подставим цифры.
Заметка: 80% от 5000 IOPS = 4000 IOPS и 20% от 5000 IOPS = 1000 IOPS с этими цифрами и будем оперировать.
Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*4))/170) = 100 дисков.
Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*4))/170) = 47 дисков приблизительно.
Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*2))/170) = 53 диска приблизительно.
Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*2))/170) = 35 дисков приблизительно.
Понимание и подсчет IOPS, RAID пенальти, и характеристик рабочих нагрузок очень критичны аспект при планировании. Когда нагрузка более интенсивна на запись луче выбирать RAID 10 и наоборот при нагрузках на чтение RAID 5.
Обновляемая производительность
Как указывалось выше, большинство массивов all-flash обеспечат большую производительность, чем большинство центров обработки данных могут использовать сегодня. Но сегодня ключевое слово здесь. По мере того, как плотность виртуальных серверов и виртуальных рабочих столов, а также количество пользователей на экземпляр базы данных продолжают масштабироваться, центрам обработки данных будет требоваться все больше и больше производительности. Сам флэш-носитель станет немного быстрее, но ключевым препятствием на пути к увеличению производительности станет контроллер хранилища и эффективность программного обеспечения хранилища.
Функции и возможности программного обеспечения хранения увеличивают производительность флеш-памяти. Эффективность этого программного обеспечения хранения в том, как оно выполняет эти различные возможности, имеет решающее значение для общей производительности. К счастью, поставщик all-flash имеет доступ к постоянно растущей вычислительной мощности, которая может маскировать большую часть накладных расходов на программное обеспечение хранения. Тем не менее, очень важно, чтобы поставщик флэш-памяти мог предоставить возможность обновления для своего аппаратного обеспечения контроллера, чтобы их клиенты могли воспользоваться преимуществами увеличивающейся мощности каждой итерации процессоров Intel.
Программы для измерения IOPS
IOmeter — http://www.iometer.org/ — тест IOPS
IOzone — http://www.iozone.org/ — тест IOPS
FIO — http://freecode.com/projects/fio — тест IOPS
CrystalDiskMark — http://crystalmark.info/software/CrystalDiskMark/index-e.html — тест IOPS
SQLIO — http://www.microsoft.com/en-us/download/details.aspx?id=20163 — набор тестов для расчета производительности (IOPS, MB, Latency) под сервера БД
wmarow — http://wmarow.com/strcalc/ — калькулятор RAID групп по производительности IOPS
Популярные Похожие записи:
NetApp успешно тестирует HAMR
- Отличия Global Hot Spare и Dedicated Hot Spare
- Как узнать уровень износа SSD дисков на серверах Dell
- Словарь системного администратора
- Как установить диск в сервер Dell Power Edge R740xd
Обнаружено повреждение в структуре файловой системы на томе
IOps (операций в секунду) не рекомендуем использовать для расчета оборудования
По нашим наблюдениям, оценка производительности СХД в IOps не даёт точного представления о производительности этой СХД под нагрузкой в задачах 1С и мы настоятельно рекомендуем не использовать IOps для расчета оборудования.
Наоборот, такая оценка может сформировать ложное представление о высокой производительности дисковой подсистемы, в то время как при эксплуатации в продуктивных условиях может выясниться недостаточная мощность СХД.
К примеру, можете ли Вы сказать, что конкретно делает «операция» из метрики IOps? Какого размера данные читаются/пишутся? Корректно ли сравнивать IOps для обычных жестких дисков и SSD? Как учитывают методики подсчета IOps замедления скорости на SSD по мере «износа» или когда на SSD мало свободного места? Можете сказать чем отличаются Raw IOPS и Functional IOPS?
Примечание. Total Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS =(((Total Raw IOPS×Write %))/(RAID Penalty))+(Total Raw IOPS×Read %)
Уверены ли Вы что разные программы измерения иопс Вам дадут одинаковые результаты?
Программы для измерения IOPS
IOmeter — тест IOPS
IOzone — тест IOPS
FIO — тест IOPS
CrystalDiskMark — тест IOPS
SQLIO — набор тестов для расчета производительности (IOPS, MB, Latency) под сервера БД
wmarow — калькулятор RAID групп по производительности IOPS
Или еще скажем точно ли методика подсчета IOps учитывает время отклика с диска и пропускную способность?
Чтобы понять почему не все просто, нужно рассмотреть простой пример и аналогию.
По дороге следует переместить из А в Б большое количество человек. Возможно два варианта: мы можем перевозить их в их личных автомобилях или же усадить в автобусы. Пропускная способность дороги конечно же будет выше в случае перевозки людей автобусами, то есть «большими блоками». Однако методы общественного транспорта обычно вступают в конфликт с индивидуальными целями и маршрутами. Хорошо если в Б у нас огромный завод, на который устремлен основной поток из А. Можно погрузить все «байты» в один большой пакет-автобус на входе, и выгрузить его на остановке у завода, куда собственно и направляются все наши «байты».
Однако если наши байты не едут на завод, а разъезжаются по индивидуальным и независимым делам-«операциям», каждый имея индивидуальный маршрут, то доставка их «автобусом»-большим пакетом приведет напротив к большим потерям времени. В этом случае транспортировка индивидуальными автомобилями будет более выгодна. Однако общий пропускной объем дороги заполненной индивидуальными «пакетами»-авомобилями везущими по нескольку байт каждый, разумеется будет ниже, чем при перевозке большим пакетом-«автобусом».
Таким образом увеличение пропускной способности в MB/s за счет укрупнения пакетов приводит к снижению IOPS, и наоборот, рост операций в секунду «доставленных к цели пассажиров» нашей дороги-интерфейса, запруженной автомобилями, приводит к снижению ее пропускной способности в MB/s. Нельзя одновременно достичь высоких показателей в IOPS и в MB/s просто по физическим свойствам существующего оборудования.
Либо большие пакеты-«автобусы» и их мало («операций в секунду»), либо маленькие индивидуальные пакеты-«автомобили», каждый осуществляющий индивидуальную «операцию» по доставке данных, но заполняющие всю дорогу, и общий human traffic в результате невелик.
На выбор нужных метрик оказывает характер обращения к данным. Линейная не многопоточное обращение к диску нельзя сравнивать с высоко конкурентным и неравномерным случайным обращением к диску.
Для оценки производительности мы используем наблюдения за текущей системой и уровнем загрузки оборудования, а также очередей на нём в пики загрузки.
Измерение производительности и IOPS жестких дисков и СХД в Windows
29.10.2019
itpro
PowerShell, Windows 10, Windows Server 2012 R2, Windows Server 2016
комментариев 8
Одной из основных метрик, позволяющих оценить производительность существующей или проектируемой системы хранения данных является IOPS (Input/Output Operations Per Second — количество операций ввода/вывода). Говоря простым языком, IOPS – этой количество блоков, которое успевает считаться или записаться на носитель или файловую систему в единицу времени. Чем это число больше – тем больше производительность данной дисковой подсистемы (откровенно говоря, само по себе значение IOPS стоит рассматривать в комплексе с другими характеристиками СХД, таким как средняя задержка, пропускная способность и т.п.).
В этой статье мы рассмотрим несколько способов измерения производительности используемой системы хранения данных в IOPS под Windows (локальный жесткий, SSD диск, сетевая папка SMB, CSV том или LUN на СХД в сети SAN).
Счетчики производительности дисковой подсистемы Windows
Вы можете оценить текущий уровень нагрузки на дисковую подсистему с помощью встроенных счетчиков производительности Windows из Performance Monitor. Чтобы собрать данные по этим счетчикам:
- Запустите Perfmon ;
- Создайте новый набор сборщиков данных (Data Collector Set). Выберите Create manually;
- Выберите опцию Create data logs ->Performance counter;