Все чаще в обзорах накопителей информации – жестких дисков, 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. Линейные скорости у них отличаются не сильно (примерно в полтора раза). А вот на блоках 4 Кбайт - разрыв уже в 40 раз. А при записи с очередью в 32 команды еще больше - в 66 раз.
Поэтому при покупке SSD обращайте внимание не только на скорости последовательного чтения, но и на IOPS. Если остались вопросы по данному материалу, пишите в комментарии.
Получайте анонсы новых статей прямо на почту
|
Комментарии
Коммент от
Дек 04, 2011Комментатор
КириллКоммент от
Дек 05, 2011Комментатор
pc-hard.ruКоммент от
Дек 05, 2011Комментатор
КириллЦитирую pc-hard.ru:
А как же дефрагментация или ее отсутствие? И если файл дефрагментирова н, то он и не будет разбросан по всему жесткому, т.е. будет последовательно е чтение.
Цитирую pc-hard.ru:
А тут мне кажется стоит упомянуть, что во всех системных разделах под Windows размер блока по 4K устанавливается еще в процессе установки ОС при форматировании или создании нового раздела, что чаще всего и происходит.
Коммент от
Дек 05, 2011Комментатор
pc-hard.ruЦитирую Кирилл:
Размер блока 4К только в новых винчестерах с технологией Advanced Format. Обычно Блок равен 512 байт.
Если вы о размере кластеров, то он зависит от размера раздела жесткого диска. Чем больше размер, тем больше размер кластера. Если сделать слишком мелкий размер кластера, их будет много и размер таблицы файлов будет очень большой. Если сделать слишком большой размер кластера, будут потери свободного места при записи мелких файлов.
Коммент от
Дек 05, 2011Комментатор
КириллКоммент от
Ноя 26, 2013Комментатор
JoJo