Что такое IOPS и что он показывает
27 Ноября 2011

Что такое 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 у разных типов накопителей

Какой смысл в этом параметре. Выбираем два устройства, у одного IOPS равен 100, а у другого – 300. Значит, скорее всего, при использовании жесткого диска в качестве загрузочного, он будет функционировать в три раза быстрее.

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

У обычных винчестеров значение IOPS составляет примерно 60-100. У SSD он может достигать 5000-10000. У последних сверхтехнологичных моделей SSD выше 50 000. Другими словами, если у жесткого диска максимальная скорость чтения 100 Мбайт/с, а у SSD – 500 Мбайт/с, то это означает, что пятикратная разница в скорости будет только при копировании больших файлов, когда идут последовательное чтение и запись больших массивов информации.  При работе же операционной системы скорость может отличаться в 20 и даже в 100 раз (то есть IOPS будет отличаться именно в такое количество раз).

Сравнение скорости жесткого диска и SSD
Сравнение скоростей SSD (слева) и обычного жесткого диска (справа).
Измеряется скорость последовательного чтения (Seq), блоками 512К и 4К.
При меньшем размере блока скорость ниже.
Однако скорость SSD падает заметно медленнее, чем скорость классических винчестеров.
(изображение кликабельно)

Посмотрите на изображение. На нем сравниваются обычный жесткий диск и SSD. Линейные скорости у них отличаются не сильно (примерно в полтора раза). А вот на блоках 4 Кбайт - разрыв уже в 40 раз. А при записи с очередью в 32 команды еще больше - в 66 раз.

Поэтому при покупке SSD обращайте внимание не только на скорости последовательного чтения, но и на IOPS. Если остались вопросы по данному материалу, пишите в комментарии.

Получайте анонсы новых статей прямо на почту

 

Комментарии 

Коммент от
Дек 04, 2011
Комментатор
Кирилл
По-моему важно было бы добавить, что разницы в SSD между последовательны м и произвольным доступом нет, а в HDD как раз присутствует, из-за позиционировани я головок.
Коммент от
Дек 05, 2011
Комментатор
pc-hard.ru
Цитирую Кирилл:
По-моему важно было бы добавить, что разницы в SSD между последовательны м и произвольным доступом нет, а в HDD как раз присутствует, из-за позиционировани я головок.
Разница в SSD между последовательны м и произвольным доступами все-таки есть. Только она не такая существенная, нежели в жестких дисках. Процесс получения данных в SSD не так прост. В при последовательно м чтении данные берутся целыми столбцами и строками. Если бы разницы не было, то данные на зеленой диаграмме скоростей при разном размере блока были бы одинаковые. А так, скорость хоть и падает, но заметно медленнее, чем у классических винчестеров.
Коммент от
Дек 05, 2011
Комментатор
Кирилл
Вообщем после прочтения я запутался, и мне кажется есть в статье какие-то пробел.
Цитирую pc-hard.ru:
Теперь представим себе, что файл размером 4000 Кбайт разбит на равные блоки по 4 килобайта (то есть тысяча кусков), которые разбросаны по всему диску.

А как же дефрагментация или ее отсутствие? И если файл дефрагментирова н, то он и не будет разбросан по всему жесткому, т.е. будет последовательно е чтение.
Цитирую pc-hard.ru:
Блок размером именно 4 Кбайта, я привел в качестве примера неспроста. Такой размер блока выставляют при тестировании носителей, так как он примерно соответствует размеру блока при загрузке операционной системы и запуске приложения...

А тут мне кажется стоит упомянуть, что во всех системных разделах под Windows размер блока по 4K устанавливается еще в процессе установки ОС при форматировании или создании нового раздела, что чаще всего и происходит.
Коммент от
Дек 05, 2011
Комментатор
pc-hard.ru
Цитирую Кирилл:
А как же дефрагментация или ее отсутствие? И если файл дефрагментирова н, то он и не будет разбросан по всему жесткому, т.е. будет последовательно е чтение.
Здесь вопрос в другом. Во время загрузки Windows считывает большое количество библиотек и драйверов. Если найти средний размер файлов (то есть разделить их общий объем на количество файлов), то он будет примерно 4К. Хотя от системы к системе этот показатель будет варьироваться, порядок цифр будет тот же. Дефрагментируй, не дефрагментируй - в каком порядке будут грузиться файлы точно сказать невозможно.Тоже самое относится и к запуску приложений (хотя разброс цифр здесь намного больше).

Цитирую Кирилл:
А тут мне кажется стоит упомянуть, что во всех системных разделах под Windows размер блока по 4K устанавливается еще в процессе установки ОС при форматировании или создании нового раздела, что чаще всего и происходит.

Размер блока 4К только в новых винчестерах с технологией Advanced Format. Обычно Блок равен 512 байт.
Если вы о размере кластеров, то он зависит от размера раздела жесткого диска. Чем больше размер, тем больше размер кластера. Если сделать слишком мелкий размер кластера, их будет много и размер таблицы файлов будет очень большой. Если сделать слишком большой размер кластера, будут потери свободного места при записи мелких файлов.
Коммент от
Дек 05, 2011
Комментатор
Кирилл
Спасибо, да, действительно, извините, перепутал кластер с блоком)
Коммент от
Ноя 26, 2013
Комментатор
JoJo
Производительно сть IOPS Для SSD Дисков должна быть больше, от этого зависит суммарная скорость работы, а также чтение и запись на каждый блок.