скорость произвольного чтения 4kb iops что это
Скорость произвольного чтения 4kb iops что это
Все чаще в обзорах накопителей информации – жестких дисков, SSD – помимо скорости чтения и записи используется такой параметр, как IOPS (Input/Output Operations Per Second – количество операций ввода/вывода в секунду). И если значение скорости чтения и записи вполне очевидно, то, что такое IOPS, и как он характеризует работу устройств, не всем бывает понятно. В данной статье я попробую разъяснить на пальцах значение данного параметра.
Для начала представим себе, что данные на диске расположены последовательно. То есть части одного и того же файла идут друг за другом. Тогда при чтении с жесткого диска магнитные головки будут считывать информацию последовательно. При этом не будет тратиться время на перемещение головок, основную часть процесса будет занимать непосредственно чтение данных. Если речь идет об SSD, то в них данные могут считываться более крупными порциями, и они будут перебрасываться быстрее. Поэтому во всех устройствах последовательное чтение показывает максимальную скорость.
Если же части файла расположены в случайном порядке (то есть файл фрагментирован), то для считывания каждого кусочка магнитным головкам придется перемещаться на новое место. Поскольку время перемещения головок (так называемый процесс позиционирования) значительно больше, чем время самого чтения, то основную часть времени жесткий диск будет заниматься позиционированием. При этом очевидно, что скорости заметно упадут. Причем, чем меньше размер блока, чем больше их количество, и тем больше времени придется тратить на позиционирование.
Причем этот эффект будет тем больше заметен, чем медленнее носитель. Попробуйте скопировать на флэшку (или даже на дискету) один файл размером в 1000 килобайт или 1000 файлов размером в один килобайт. Во втором случае процесс переноса данных займет намного больше времени.
Теперь представим себе, что файл размером 4000 Кбайт разбит на равные блоки по 4 килобайта (то есть тысяча кусков), которые разбросаны по всему диску. Допустим, чтение такого файла идет со скоростью 400 Кбайт/с. Значит, за одну секунду совершается 100 операций чтения – то есть действий по считыванию каждого отдельного четырехкилобайтного блока. То есть в данном случае IOPS будет равен 100.
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Блок размером 4 Кбайта я привел в качестве примера неспроста. Такой размер блока выставляют при тестировании носителей, так как он примерно соответствует размеру блока при загрузке операционной системы и запуске приложения. То есть от того, как железка ведет себя на операциях при блоках 4 Кбайта и будет зависеть скорость работы в реальных условиях.
Какой смысл в этом параметре. Выбираем два устройства, у одного IOPS равен 100, а у другого – 300. Значит, скорее всего, при использовании жесткого диска в качестве загрузочного, он будет функционировать в три раза быстрее.
И хотя на практике производительность может несколько отличаться от вышеизложенного, в целом по IOPS можно определить, какой диск шустрее.
У обычных винчестеров значение IOPS составляет примерно 60-100. У SSD он может достигать 5000-10000. У последних сверхтехнологичных моделей SSD выше 50 000. Другими словами, если у жесткого диска максимальная скорость чтения 100 Мбайт/с, а у SSD – 500 Мбайт/с, то это означает, что пятикратная разница в скорости будет только при копировании больших файлов, когда идут последовательное чтение и запись больших массивов информации. При работе же операционной системы скорость может отличаться в 20 и даже в 100 раз (то есть IOPS будет отличаться именно в такое количество раз).
Сравнение скоростей SSD (слева) и обычного жесткого диска (справа).
Измеряется скорость последовательного чтения (Seq), блоками 512К и 4К.
При меньшем размере блока скорость ниже.
Однако скорость SSD падает заметно медленнее, чем скорость классических винчестеров.
(изображение кликабельно)
Поэтому при покупке SSD обращайте внимание не только на скорости последовательного чтения, но и на IOPS. Если остались вопросы по данному материалу, пишите в комментарии.
IOPS — что это такое, и как его считать
IOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Характеристики производительности
Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа.
Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт.
Ниже приведены основные характеристики:
Параметр | Описание |
Всего IOPS (Total IOPS) | Суммарное число операций ввода/вывода в секунду (при выполнении как чтения, так и записи) |
IOPS произвольного чтения (Random Read) | Среднее число операций произвольного чтения в секунду |
IOPS произвольной записи (Random Write) | Среднее число операций произвольной записи в секунду |
IOPS последовательного чтения (Sequential Read) | Среднее число операций линейного чтения в секунду |
IOPS последовательной записи (Sequential Write) | Среднее число операций линейной записи в секунду |
Приблизительные значения IOPS
Приблизительные значения 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 RevoDrive 3 X2 | SSD | 200 000 IOPS (Произвольная запись 4K) | PCIe |
OCZ Z-Drive R4 CloudServ | SSD | 1 400 000 IOPS | PCIe |
RAID пенальти
Любые операции чтения, которые выполняются на дисках, не подвергаются никакому пенальти, поскольку все диски могут использоваться для операций чтения. Но всё на оборот с операциями на запись. Количество пенальти на запись зависят от типа выбранного RAID-а, например.
В RAID 1 чтобы данные записались на диск, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.
В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4.
В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации.
RAID | I/O Пенальти |
RAID 0 | 1 (Edited by Reader) |
RAID 1 | 2 |
RAID 5 | 4 |
RAID 6 | 6 |
RAID 10 | 2 |
Характеристика рабочих нагрузок
Характеристика рабочей нагрузки в основном рассматривается как процент операции чтений и записей, которые вырабатывает или требует приложение. Например, в среде VDI процентное соотношение IOPS рассматривается как 80-90% на запись и 10-20% на чтение. Понимание характеристики рабочей нагрузки является наиболее критическим фактором, поскольку от этого и зависит выбор оптимального RAID для среды. Приложения которые интенсивно используют операции на запись являются хорошими кандидатами для RAID 10, тогда как приложения которые интенсивно используют операции на чтение могут быть размещены на RAID 5.
Вычисление IOPS
Есть два сценария вычисления IOPS-ов.
Один из сценариев это когда есть определенное число дисков, и мы хотим знать, сколько IOPS эти диски выдадут?
Второй сценарий, когда мы знаем сколько нам IOPS-ов надо, и хотим вычислить нужное количество дисков?
Сценарий 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
Для RAID-1
Вариант 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)
Теперь подставим цифры.
Заметка: 80% от 5000 IOPS = 4000 IOPS и 20% от 5000 IOPS = 1000 IOPS с этими цифрами и будем оперировать.
Для RAID-5
Вариант 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 дисков приблизительно.
Для RAID-1
Вариант 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.
Часть 9. Что такое IOPS и стоит ли SSD на ставить на SATA2
У носителей информации есть еще один важный параметр — IOPS.
Это аббревиатура от английского input/output operations per second — количество операций ввода-вывода в секунду.
Как и многие другие — это скорее теоретический параметр, но, тем не менее, он позволяет продемонстрировать преимущества твердотельных накопителей перед жесткими дисками в плане производительности.
От чего зависит IOPS
Как понятно из названия параметра, чем больше будет его значение, тем выше производительность у тестируемого устройства.
В первую очередь величина IOPS зависит от конструкции устройства.
Жесткие диски — это электромеханические устройства и при считывании данных, расположенных в случайных блоках, IOPS будет в первую очередь зависеть от скорости работы механической части, то есть от времени, которое потребуется на позиционирование головки в нужном месте пластины.
Скорость доступа к данным в SSD зависит только от микроконтроллера, то есть от электронного устройства.
Насколько производительность SSD выше
Условно оценить разницу в производительности жестких дисков и твердотельных накопителей, можно из таблицы, которую можно найти в Википедии.
Да, это тесты в неких идеальных условиях и данные в Википедии уже несколько устарели. Но тем не менее, они показывают, что производительность SSD в разы выше, нежели жестких дисков. И если цифровые значения могут сейчас несколько отличаться, то разница в порядках сохранилась.
И именно количество возможных операций в секунду в конечном итоге преобразуется в более понятные нам мегабайты в секунду (МБ/c).
Утилита CrystalDiskMark
В прошлой заметке речь шла о максимальной скорости передачи данных, которую может обеспечить как сам носитель информации, так и интерфейс, через который он подключен к компьютеру.
Часто для тестирования носителей информации используют утилиту CrystalDiskMark. Именно ее скриншоты выкладывают пользователи после покупки и тестов жестких дисков или SSD.
И что же нам должны сказать цифры с этого скриншота?
Нужно понимать, что утилита — эта лишь инструмент. Параметры тестов задает пользователь и о них довольно подробно написано как в справочной системе, так и на множестве тематических сайтов. По этой причине не буду углубляться в детали, а лишь в двух словах поясню результаты.
Фактически о производительности носителей информации делается заключение по скорости последовательных и случайных операций записи/чтения.
На скриншоте мы видим две колонки с результатами — в первой выведены значения тестов на чтение, во второй на запись.
Всего выводятся результаты четырех тестов.
Первый тест — последовательное чтение (запись) данных блоками по 1 МБ в один поток с очередью в 32. Очередь — это количество отложенных операций ввода-вывода. Все эти цифры отражены в названии теста.
Здесь мы видим самые высокие цифры на скриншоте и они отвечают максимальным скоростям чтения и записи, которые заявляет производитель и которые, как правило, можно найти в описании устройства на сайте интернет-магазина.
Эти цифры могут отличаться у разных пользователей, тестирующих одно и то же устройство на своих компьютерах. Дело в том, что результаты тестов зависят от очень многих параметров, начиная от начальных условий самого теста и заканчивая настройками операционной системы, в которой происходит тестирование.
Однако это далеко не самые важные цифры.
На практике подобная скорость будет лишь в ряде определенных ситуаций, например, при копировании или переносе больших файлов из папки в папку или при создании архивов.
Тем не менее подавляющее большинство файловых операций на диске имеют совсем не последовательный, а скорее случайный характер. И именно его мы и можем оценить по четвертому тесту, который демонстрирует скорость передачи данных блоками по 4КБ в один поток и длиной очереди в 1. На практике это как раз и есть те самые обычные файловые операции, которые выполняются на диске операционной системой или запущенными программами.
Четвертый — это, пожалуй, самый важный для нас тест, а вот второй и третий тесты мало информативны для рядового пользователя и на них внимание можно не обращать.
Подведу краткий итог.
Итак, при оценке скорости копирования больших файлов показательным будет первый тест.
Для оценки производительности носителя информации в рядовых задачах будет актуален четвертый тест.
Оцениваем разницу в производительности
Ну а теперь, основываясь на скриншотах пользователей, можно оценить разницу в производительности разных типов носителей.
Подчеркну еще раз, что результаты тестов зависят от значительного количества сопутствующих факторов, однако общую тенденцию можно определить из некоторой выборки значений.
Очевидно, что производительность SSD в рядовых файловых операциях в разы выше, нежели жестких дисков.
Но следует учитывать, что большинство таких тестов проводились при оптимальном подключении, то есть SSD был подключен через интерфейс SATA 3.
Возникает закономерный вопрос, а имеет ли смысл подключать SSD к SATA 2?
Очевидно, что максимальная скорость при последовательных операциях чтения/записи будет ограничена возможностью SATA 2. Напомню, это приблизительно 300 Мбайт/c.
Однако значительно большее значение IOPS сократит задержки в файловых операциях в несколько раз, и, как видно из тестов, скорость случайных операций значительно ниже пропускной способности SATA 2.
Но и тут не все так однозначно.
Как показывают тесты, при подключении к SATA 2 падает и это значение…
Тем не менее, оно все равно значительно выше, нежели у жестких дисков. Поэтому, с моей точки зрения, установка SSD на SATA 2 все равно оправдана — мы получаем возможный максимум при последовательных операциях и в пять-десять раз ускоряем рядовые файловые операции.
Итак, с производительностью определились, осталось разобраться с долговечностью.
Быстрые и сверхбыстрые диски в облаке: как получить максимум от облачной системы хранения данных
При переносе высоконагруженных систем в облако очень важно подобрать правильный тип дисков — чтобы гарантировать максимальную пропускную способность и минимизировать время задержки.
Расскажем о быстрых дисках High IOPS SSD и сверхбыстрых дисках Low Latency NVMe, доступных на платформе VK Cloud Solutions (бывш. MCS) и способных справиться с этой задачей.
Зачем нужны быстрые и сверхбыстрые диски
Большинство облачных провайдеров предлагают на выбор несколько типов дисков, которые отличаются числом операций ввода/вывода в секунду (Input/Output Operations Per Second, IOPS), пропускной способностью (Throughput) и задержкой (Latency). При этом облачные диски, как правило, имитируют привычные для классических архитектур физические носители информации, такие как HDD и SSD.
Облако VK не исключение — в нем доступны и HDD-, и SSD-диски:
Характеристики HDD и SSD в облаке VK Cloud Solutions (бывш. MCS)
Параметр | HDD | SSD |
IOPS (количество операций в секунду на 2 Тб пространства) | SLA для чтения — 300–2400, для записи — 150–800. | SLA для чтения — 1000–16 000, для записи — 500–8000. |
Throughput (пропускная способность на 2 Тб пространства, при размере блока 1М) | SLA для чтения — 250 Мб/с, для записи — 100 Мб/с. | SLA для чтения и записи — 400 Мб/с. |
Latency (задержка) | SLA не установлен | SLA не установлен |
Производительность HDD и SSD достаточна для большинства приложений, не требовательных к времени отклика. Диски HDD чаще всего используют в качестве загрузочных разделов ОС и файловых хранилищ, диски SSD — для хранения СУБД, телеметрии и очередей сообщений.
Однако существуют приложения, для которых критически важна скорость отклика дисков. В первую очередь это высокопроизводительные СУБД, аналитические платформы, приложения, работающие с Big Data, и иные высоконагруженные системы, обрабатывающие большие объемы данных. В качестве основы для таких приложений может использоваться такое ПО, как Arenadata DB, Apache Hadoop, Apache Spark, ClickHouse, Storm, Kafka и так далее.
Обслуживая миллионы параллельных запросов к данным, подобные системы предъявляют повышенные требования к производительности дисков: она должна быть достаточной, чтобы обеспечить минимальное время отклика системы. Очевидно, что диски HDD и SSD для подобных задач не подходят. Именно поэтому на платформе VK доступны еще два типа дисков: быстрые High IOPS SSD и сверхбыстрые Low Latency NVMe.
Быстрые диски High IOPS SSD
Это быстрые диски, обеспечивающие большую производительность по сравнению с SSD и HDD. В мире традиционной инфраструктуры им соответствуют SSD потребительского класса.
High IOPS SSD размещаются в дата-центрах, как и диски SSD и HDD. Однако, в отличие от них, для High IOPS SSD не обеспечивается реплицирование данных между доступными нодами. Поэтому в случае выхода физического оборудования из строя может наступить временная недоступность данных, стоит дополнительно позаботиться об обеспечении отказоустойчивости на уровне приложений.
Технические характеристики High IOPS SSD приведены ниже: диски имеют время обслуживания и полосу пропускания, приемлемые для подавляющего большинства приложений. Чаще всего их используют в СУБД, аналитике и телеметрии с большими требованиями к производительности, чем у обычных SSD. Но для очень высоких нагрузок их возможностей все-таки может не хватить.
Характеристики High IOPS SSD в облаке VK Cloud Solutions (бывш. MCS)
Параметр | Значение |
IOPS (количество операций в секунду на 2 Тб пространства) | SLA для чтения — 10 000–45 000, для записи — 5000–30 000. |
Throughput (пропускная способность на 2 Тб пространства при размере блока 1М) | SLA для чтения и записи 500 Мб/с. |
Latency (задержка) | SLA не установлен |
Сверхбыстрые диски Low Latency NVMe
Это диски с быстрым откликом. Они подключаются на высокочастотных конфигурациях ВМ по запросу в техническую поддержку. Среди всех облачных дисков VK обеспечивают наименьшую задержку: гарантированное время отклика дисковой подсистемы составляет не более 0,5 мс. При этом среднее время отклика на таких дисках — 0,2 мс. В традиционной инфраструктуре им соответствуют физические диски NVMe. Виртуальная машина с такими дисками наиболее близка к Bare Metal.
В отличие от других типов облачных дисков, размещаемых в дата-центрах, Low Latency NVMe являются локальными, то есть они физически базируются в гипервизорах. По сравнению с прямым пробросом NVMe-устройства в гостевую ОС это приводит к меньшей скорости работы, но к большей отказоустойчивости: предоставляются гарантии сохранности данных даже в случае, если NVMe-диск отказывает.
Несмотря на то что Low Latency NVMe являются локальными, они позволяют производить замену диска на лету, без прерывания сервиса — как и для других облачных дисков. При необходимости обслуживания гипервизора также предоставляется возможность миграции виртуальной машины и дисков на другой гипервизор с аналогичными дисками без прерывания сервиса.
Благодаря высокой производительности Low Latency NVMe идеальны для сверхнагрузок. Чаще всего они используются там, где важно обеспечить минимальные задержки: высокопроизводительные СУБД, аналитика и кэш.
Характеристики Low Latency NVMe на платформе VK Cloud Solutions (бывш. MCS)
Параметр | Значение |
IOPS (количество операций в секунду на 2 Тб пространства) | SLA для чтения — 10 000–75 000, для записи — 5000–50 000. |
Throughput (пропускная способность на 2 Тб пространства при размере блока 1М) | SLA для чтения — 1200 Мб/с, для записи — 900 Мб/с. |
Latency (задержка) | SLA — максимум 0,5 мс. |
Как понять, какой тип быстрых дисков вам подходит
Диски High IOPS SSD и Low Latency NVMe по производительности во много раз превосходят HDD и SSD. Но как выбрать между ними? Как убедиться, достаточно ли для проекта High IOPS SSD, или их скорости будет мало и лучше подключить Low Latency NVMe?
Ответы на эти вопросы можно получить только с помощью тестирования приложения под HighLoad-нагрузкой. Без этого не получится определить, какая производительность дисковой подсистемы потребуется на конкретном проекте, так как итоговые цифры будут зависеть от многих факторов: какие запросы выполняются над данными, в каком количестве и так далее. На основе исходных данных о проекте можно подобрать объем дисков, но требуемую производительность получится определить только с помощью тщательного тестирования.
В общем случае тестирование производительности может состоять из следующих шагов:
Таким образом, единого алгоритма для выбора между High IOPS SSD и Low Latency NVMe быть не может: для каждого бизнес-кейса потребуется анализ требований к производительности и тестирование.
Какой тип быстрых дисков выбрать: базовые рекомендации
Несмотря на то что правильный выбор можно сделать только после тестирования, мы можем дать несколько базовых рекомендаций: