Скорость случайной записи

Содержание

Отзывы и обзоры хостинга

IOPS – название группы показателей производительности дисковой подсистемы, расшифровывается «Input/output Operations Per Second» – количество операций ввода/вывода в секунду. Под одной операцией понимается чтение или запись блока файловой системы (файловая система состоит из блоков фиксированной длины, например, по 4 килобайта, а большие файлы состоят из множества блоков).

Еще один важный показатель – latency (задержка, время выполнения одной операции, измеряется в милли- или даже микросекундах).

На VPS и выделенных серверах есть возможность эти показатели оценить. Иногда похожие конфигурации (например, 1 ядро 2 ГГц, 2 ГБ оперативной памяти) выдают значения IOPS, отличающиеся на порядок.

Вот так выглядят стабильные IOPS:

А это нестабильные:

А вот лимитированные (смотрите на размерность):

Насколько это существенно для работы сайтов и веб-приложений? Ответ не совсем очевиден.

Современные сайты – это системы с многослойным кешем (кеши ОС, СУБД, интерпретатора языка программирования, кеш уровня приложения). Если поверхностно посмотреть дисковую активность при работе какой-нибудь популярной CMS, то чтения там может не оказаться вовсе. Всё, что нужно для генерации страницы, уже лежит в оперативной памяти. Это нормально, и вроде бы IOPS и latency не так важны.

Но вот некоторые случаи, когда дисковую активность можно наблюдать:

  • отдельный сервис или весь сервер после перезагрузки, когда кеш не «прогрет»;
  • большой объем базы данных, когда не всё помешается в буферы и кеш;
  • много статики, которая вся не помещается в RAM;
  • сайты с авторизацией пользователей и персонифицированными страницами, когда эффективность кеша невысока;
  • страницы с тяжелыми SQL-запросами, охватывающими большие наборы данных;
  • создание резервных копий;
  • нехватка оперативной памяти, быстрое вымывание кеша.

Если не хочется то там, то тут сталкиваться с «тормозами», которые исчезают после перезагрузки страницы, и которые поэтому сложно отлавливать, то лучше контролировать показатели IOPS.

Посмотреть, насколько интенсивно ваш сайт работает с диском, можно программой iotop. Установка на Debian:

apt-get update
apt-get install iotop

Вызывать ее можно так iotop -o -d 2 (показывать только процессы, использующие диск, и обновлять данные каждые две секунды).

Вот пример сайта, где всё лежит в кеше:

Особое внимание стоит обратить на колонку IO – это доля времени исполнения процесса, затраченная на дисковые операции. В показанном случае с диска ничего не читается, а только немного пишется в базу данных CMS (возможно, обновляется информация о сессиях, и что-то логируется).

А вот так выглядит тяжелая страница:

Скрипт выполнялся несколько секунд, при этом почти 40% времени заняло чтение с диска. Причем это SSD. На медленном диске или с серьезным ограничением на скорость чтения вполне могла быть и 504 ошибка.

Арендуя недорогие VPS, имеет смысл проверять диск.

Быстро протестировать сервер можно с помощью шелл-скрипта nench. Сравнить показатели с аналогичными серверами у других провайдеров можно в разделе «Тесты скорости VPS».

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

IOPS используется для определения производительности диска или дискового массива.

IOPS означает Input/Output (operations) Per Second, количество “операций ввода/вывода в секунду”. Величина измеряет объем работы за определенный промежуток времени. По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.

“Операция ввода/вывода” — это просто некая часть работы дисковой подсистемы, которая совершается в ответ на запрос хост-сервера и/или некоторых внутренних процессов. Обычно это чтение или запись с различными подкатегориями, например “чтение” (read), “повторное чтение” (re-read), “запись”(write), “перезапись” (re-write), “произвольный тип доступа” (random), “последовательный тип доступа” (sequential) и размер оперируемого блока данных.

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

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

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

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

Latency это мера того, сколько времени занимает выполнение одного запроса ввода/вывода, с точки зрения приложения.

Значительные объемы I/O wait это признак того, что источник проблем — хранилище (существуют и другие источники задержек, CPU и сеть — это обычные примеры). Даже в случае хороших показателей latency, если вы видите большое количество I/O waits — это значит, что приложение хотело бы больше скорости от системы хранения.

Определение производительности дисковой системы — это часто игнорируемый аспект проектирования систем. Поскольку дисковая система является самой медленной средой на компьютере, она должна быть одной из ПЕРВЫХ компонентов, спецификация которых правильно определена.

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

IOPS используются для определения производительности диска или дискового массива. Для примера можно считать, что максимальный IOPS для диска:

10K RPM Fibre Channel Disk: 130 IOPS
15K RPM Fibre Channel Disk: 180 IOPS

ПРИМЕЧАНИЕ. Для расчета фактического IOPS для диска требуется следующая информация: Average latency, Average seek time. Эту информацию можно получить от производителя

Вычислим максимальный IOPS для диска

Для примера возьмем диск: Seagate ST500DM002-1BC142

Average latency (avgLatency): 4.16ms или 0.00416s
Average seek time (avgSeek): 8.5ms или 0.0085s

Чтобы вычислить IOPS используем уравнение:

IOPS = 1/(avgLatency + avgSeek)
IOPS = 1/(0.00416 + 0.0085) = 78,9889415

Итого, максимальный IOPS — 79.

Вычисляем максимальное значение IOPS для дискового массива

В примечании к разработке системы хранения, вычисление производительности дисковой системы имеет решающее значение для работы данной системы. Большинство систем используют RAID для обеспечения избыточности хранилища. В этом разделе описывается, как вычисляются IOPS для RAID-массивов.

Максимальное значение IOPS для чтения

Вычисление максимального значения IOPS чтения (maxReadIops) для RAID-массива:

maxReadIops = numDisks * diskMaxIops

Соответственно для массива из 4 дисков максимальное значение IOPS чтения будет следующим:

maxReadIops = 4 * 79
maxReadIops = 316

Максимальное значение IOPS для записи

Вычисление максимального значения IOPS записи (maxWriteIops) — это совсем другое в отношении RAID-массивов. RAID-массивы имеют штраф на запись, а тип RAID-массива определяет серьёзность штрафа. Этот штраф является результатом избыточности, которую предоставляет RAID, поскольку массив обязательно должен записывать данные на несколько дисков/локаций для обеспечения целостности данных.

Штраф на запись RAID-массива

Наиболее распространенные типы RAID и их штрафы на запись определяются в следующей таблице:

RAID Type Write Penalty
RAID 1 2
RAID 5 4
RAID 6 6
RAID 10 2

Чтобы вычислить максимальное значение IOPS записи (maxWriteIops) для заданного RAID-массива, разделим максимальное значение IOPS чтения (maxReadIops) на штраф за запись RAID-массива (raidWritePenalty): maxWriteIops = maxReadIops / raidWritePenalty

Используя наш пример с 4-мя дисками и конфигурацией RAID 10, получаем следующие значения:

maxWriteIops = 316 / 2
maxWriteIops = 158

Итого, для нашего примера, максимальное значение IOPS на запись для массива RAID 10 — 158.

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

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

Для начала необходимо знать требования к производительности (например, чтение и запись IOPS) для данной системы или приложения. Эта информация может быть получена из документации поставщика или программного обеспечения.

Вычисление минимально необходимого IOPS

Предположим, что у нас есть приложение, которое требует 600 Read IOPS и
300 Write IOPS. Дисковый массив собран в RAID 5.

Чтобы вычислить минимальное количество IOPS (minReqdIops), добавьте количество требуемых IOPS чтения (reqdReadIops) к сумме количества требуемых IOPS записи (reqdWriteIops) и штрафа RAID (raidWritePenalty): minReqdIops = reqdReadIops + (reqdWriteIops * raidWritePenalty)

В нашем примере:

minReqdIops = 600 + (300 * 4)
minReqdIops = 1800

Минимальное количество IOPS, необходимое для обеспечения уровня производительности для нашего примера — 1800.

ПРИМЕЧАНИЕ. Этот расчет определяет минимальное количество IOPS, необходимое для соответствия спецификации производительности. Это означает, что дисковый массив НЕ должен работать ниже этого уровня производительности.

Вычисляем минимальное количество дисков для RAID-массива

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

Минимальное количество дисков по скорости диска

Минимальное количество дисков, необходимых для выполнения нашего требования к производительности (minNumDiskMinPerf), рассчитывается следующим образом: minNumDisksMinPerf = minReqdIops / maxIopsByDiskSpeed

Используя информацию из расчета минимально необходимых IOPS выше и предполагая, что мы хотим создать массив из 10 000 RPM-дисков (~125-150 IOPS), вычисление минимального количества дисков, которое будет соответствовать нашим минимальным требованиям к производительности (minNumDisksMinPerf) 1800 IOPS (minReqdIops) выглядит следующим образом:

minNumDisksMinPerf = 1800 / 130
minNumDisksMinPerf = 14

Минимальное количество дисков 10 000 RPM, необходимых для удовлетворения наших требований к производительности, — 14.

Минимальное количество дисков по типу RAID

Тип RAID определяет минимальное количество дисков для удовлетворения требований типа RAID. Например, для RAID 5 всегда требуется как минимум 3 диска. Для RAID 10 всегда требуется как минимум 4 диска.

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

Тип RAID Количество дисков RAID множитель
RAID5 3 N/A
RAID10 4 4

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

В примере, когда 10K RPM-диски были выбраны для построения массива, расчет показывает, что требуется не менее 14 дисков. Если тип RAID будет 5, 14 дисков будет достаточным. Однако, если тип RAID будет равен 10, минимальное количество дисков, требуемых этим типом RAID, будет 8, поскольку множитель для RAID 10 равен 4.

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

IOmeter — тест IOPS
IOzone — тест IOPS
FIO — тест IOPS
CrystalDiskMark — тест IOPS
SQLIO — набор тестов для расчета производительности (IOPS, MB, Latency) под сервера БД
wmarow — калькулятор RAID по производительности IOPS

RAID из SSD — находка или бессмыслица? (страница 2)

Конфигурирование RAID

Энтузиасты наверняка знают, как выполнять эти действия, но для тех, кто только собирается знакомиться с массивами, подобный материал может быть полезным. Да простят меня сторонники AMD, объяснять я буду на примере указанного выше стенда «Wintelidia».

Прежде всего, необходимо переключить в BIOS режим работы чипсетного контроллера в режим RAID.

Если переключение производится после установки операционной системы, это чревато потерей ее работоспособности и бесконечным падением в синий экран. Для решения такой проблемы следует воспользоваться инструкцией Microsoft.

Предположим, с этим все хорошо. Если ОС еще не установлена, можно войти в меню самого контроллера и создать массив в его утилите. Для этого нужно успеть нажать CTRL+I во время загрузки.

Если же есть возможность загрузиться с отдельного диска, проще всего поставить фирменные драйверы Intel и воспользоваться консолью Rapid Storage Technology. При наличии подходящих дисков будет доступна кнопка «Создать».

На первом шаге необходимо выбрать тип массива.

Затем выполнить непосредственно настройку. Есть возможность не создавать RAID с нуля, а взять за основу одиночный диск с данными. Кроме того, для всех массивов (кроме «зеркала») можно выбрать размер полосы данных, он же размер страйпа (stripe size). Это определяет размер блоков, на которые разбиваются данные. Большие значения полезны для работы с большими файлами, маленькие – прежде всего для маленьких транзакций в стиле СУБД (хотя все сильно зависит от СУБД, типа массива, вида нагрузки, настроения разработчиков прошивки контроллера и прочих особенностей). Обычно лучше оставлять настройку по умолчанию.

В RAID-0 Intel рекомендует использовать 16 кбайт для SSD и 128 кбайт для HDD – так написано в справке. На практике же для SSD выставляется значение 32 Кбайта, так что для большинства сценариев буду использовать именно его.

Также можно включить кэш обратной записи тома, который по умолчанию выключен. В этом случае записываемые на массив данные не сразу отправляются на диски, а временно сохраняются в кэше (для чипсетного контроллера это оперативная память компьютера).

Таким образом, повышается скорость операций записи, но одновременно увеличивается риск потери данных в случае сбоев. Мы все делаем «бэкапы» (правда ведь???) и ждем от RAID-0 максимальной производительности, так что во всех тестах этих массивов кэш будет включен.

Можно управлять еще и кэшем самих дисков в массиве. Он включен по умолчанию. Для RAID-1 будет проведено измерение производительности без кэшей, поскольку если речь идет о надежности, то уже не до высоких скоростей.

Кстати, сценарий не такой уж экзотический. Windows Server, будучи контроллером домена, всегда отключает кэш системного диска. Если нет дискретного RAID контроллера, который слушается только своего драйвера, скорость жестких дисков упадет в несколько раз. Посмотрим, как ведут себя SSD.

В моем случае отключение кэша через Intel RST почему-то не работало – после перезагрузки он включался вновь. Пришлось воспользоваться «Диспетчером устройств», а именно снять галку «Разрешить кэширование записей для этого устройства» в свойствах RAID массива.

Эта настройка и Intel RST взаимосвязаны, после снятия галки параметр «Кэш данных диска» также переходит в состояние «Выключен» и остается таким после перезагрузок.

В итоге будут протестированы следующие конфигурации:

  • Vertex 3 RAID-0, размер страйпа 32 Кбайта;
  • Vertex 3 RAID-0, размер страйпа 128 Кбайт;
  • Vertex 3 RAID-0, подключение через порты SATA-II;
  • Vertex 3 RAID-0, медленный ЦП (активны два ядра, HT отключен, частота 2400 МГц, память 1066 МГц CL7);
  • Vertex 3 RAID-1, кэш массива и дисков включен;
  • Vertex 3 RAID-1, кэш массива и дисков выключен;
  • Crucial M4 RAID-0, размер страйпа 32 Кбайта;
  • Crucial M4 RAID-1, кэш массива и дисков включен;
  • Crucial M4 RAID-1, кэш массива и дисков выключен;
  • Одиночный Vertex 3;
  • Одиночный Crucial M4;
  • Жесткий диск WD5000AAKX.

Тестирование в классических бенчмарках

Crystal Disk Mark

Скорость линейного чтения, Мбайт/с
Включите JavaScript, чтобы видеть графики

Почти двукратный прирост скорости в RAID-0 вполне ожидаем. Размер страйпа не оказывает практически никакого влияния на больших файлах, процессорозависимость бенчмарка отсутствует. А вот SATA-II подключение резко ограничивает возможности системы до уровня одиночного устройства, подключенного через SATA-III.

Удивительно быстро работает RAID-1, не иначе как чтение осуществляется с двух накопителей одновременно. Раньше в тестах жестких дисков такого не наблюдалось, но то была более старая платформа и старые драйверы. При случае надо будет проверить парочку HDD.

Скорость линейной записи, Мбайт/с
Включите JavaScript, чтобы видеть графики

На записи все меняется. Маленькие M4 слабы на запись, поэтому даже одиночный Vertex 3 обходит RAID-0 из двух дисков Crucial. Можно заметить, что отключенный кэш несущественно снижает скорость «зеркал».

Скорость случайного чтения (блок 512 Кбайт), Мбайт/с
Включите JavaScript, чтобы видеть графики

Удивительно, но на чтении крупными блоками «страйпы» существенно замедляются и лидерами оказываются массивы RAID-1, причем без кэшей. На ошибку не похоже – и Vertex 3, и M4 ведут себя одинаково.

Скорость случайной записи (блок 512 Кбайт), Мбайт/с
Включите JavaScript, чтобы видеть графики

В данном случае картина осталась похожей на ту, что была на линейной записи. Разве что механический диск замедлился почти вдвое.

Скорость случайного чтения (блок 4 Кбайт), Мбайт/с
Включите JavaScript, чтобы видеть графики

Обычно так оно и происходит: во время проверки чистого времени доступа на чтение массивы только мешают.

Скорость случайной записи (блок 4 Кбайт), Мбайт/с
Включите JavaScript, чтобы видеть графики

Маленькие запросы на запись можно кэшировать, поэтому производительность большинства систем значительно выше, чем на чтении. Исключение составляют конфигурации без кэша, особенно плачевно смотрится M4. Судя по всему, настройка отключает его 128-мегабайтный кэш, без которого SSD сваливается до уровня жесткого диска. А SandForce’ам кэш не ставят, им и так хорошо.

Кстати, обратите внимание, насколько сильно проявилась процессорозависимость. Загрузка ЦП в этом тесте действительно высока.

Скорость случайного чтения (блок 4 Кбайт, длина очереди 32), Мбайт/с
Включите JavaScript, чтобы видеть графики

На глубокой очереди «марвеловские герои» просто потрясающи – сто тысяч IOPS за смешные деньги.

Скорость случайной записи (блок 4 Кбайт, длина очереди 32), Мбайт/с
Включите JavaScript, чтобы видеть графики

Множество параллельных операций записи позволяют одиночному Vertex’у, зеркалам без кэша и системе с медленным CPU восстановить свою производительность. Все участники (кроме жесткого диска) работают как в сценарии с крупными блоками.

PCMark 7

Windows Defender, Мбайт/с
Включите JavaScript, чтобы видеть графики

importing pictures, Мбайт/с
Включите JavaScript, чтобы видеть графики

Video editing, Мбайт/с
Включите JavaScript, чтобы видеть графики

Windows Media Center, Мбайт/с
Включите JavaScript, чтобы видеть графики

adding music, Мбайт/с
Включите JavaScript, чтобы видеть графики

starting applications, Мбайт/с
Включите JavaScript, чтобы видеть графики

gaming, Мбайт/с
Включите JavaScript, чтобы видеть графики

storage score, баллы
Включите JavaScript, чтобы видеть графики

Разнообразие есть только в тесте importing pictures, в нем доминируют Vertex’ы.

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

Разумеется, было решено перенести на SSD только системный диск с Windows 7, т.к. переносить файлы нет никакого смысла. Скорость линейного чтения с жесткого диска (130-150 Мб/с) — вполне достойная, чтобы использовать его как файловое хранилище. Сама Windows занимает порядка 30 ГБ. Еще порядка 40-50 ГБ занимают все установленные программы: пакет Adobe CS Master Collection, офисный пакет, видео и аудио редакторы и т.п.

Исходя из этого, я определил, что мне будет недостаточно накопителя объемом до 64 ГБ; 90 ГБ — что называется, «впритык», а вот 120 ГБ — более чем достаточно. При таком объеме диск будет загружен не более, чем наполовину, что достаточно.

Из обязательных требований: максимально возможное быстродействие при минимально возможной цене. После непродолжительных поисков (выбор не такой уж большой надо признать), я остановился на Corsair Force 3 120GB:

Этот накопитель построен на базе контроллера SandForce второго поколения — пожалуй, самого лучшего на данный момент.

Объем номинальный — 120 ГБ; фактический — 111 ГБ (часть объема уходит для служебных целей контроллера). Скорость записи/Скорость чтения — 510/550 Мб. Скорость случайной записи (блоки по 4Кб) — 85000 IOPS.

Здесь я просто не могу не сказать о том, НАСКОЛЬКО огромна эта цифра — 85000 операций ввода/вывода в секунду. Случайные чтение/запись — это то, чем занимается накопитель во время работы ПК практически 90% времени. А жесткие диски здесь крайне просто преступно медленны. Сравните скажем, IOPS которое обеспечивает жесткий диск и SSD:

Полный список характеристик накопителя: http://market.yandex.ru/model-spec.xml?modelid=7295456&hid=91033

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

В комплект поставки входят:

— Сам накопитель в форм-факторе 2.5” (подходит для установки в ноутбуки, наряду с настольными ПК)
— Переходник для установки накопителя в 3,5” корзину корпуса настольного компьютера
— Винты для крепления

Сам накопитель имеет алюминиевый корпус, покрытый черной краской. Алюминиевый корпус сегодня имеет большинство SSD — считается, для более лучшего охлаждения. Но забегая вперед могу смело сказать, что больше 35 градусов мой SSD не нагревался даже при пиковых нагрузках.

Собственно, установка накопителя не сложнее установки нового жесткого диска. Монтируем накопитель в корпус, запускаем компьютер, форматируем и используем.

Я сразу решил установить Windows 7 «с чистого листа» — это лучший сценарий перехода на SSD. Ведь тогда операционная система определяет локальный диск и работает с ним изначально именно как с SSD, а не HDD. Ведь, как вы знаете, там существуют некоторые нюансы (о них я писал в предыдущей статье).

Конечно, можно было бы просто перенести операционную систему и все программы с жесткого диска с помощью того же Acronis True Image Home 2012. При желании это вполне можно сделать.

Первое, что бросилось в глаза — супербыстрая установка Windows 7 Ultimate: всего 6 минут. С момента вставки DVD с Windows в дисковод и до появления рабочего стола операционной системы прошло ровно 6 минут! Для сравнения — на обычный жесткий диск эта же «семерка» устанавливается не менее, чем за 20 минут.

Это первый приятный шок, который испытывает новоиспеченный пользователь SSD, но, к счастью — не последний…

После установки — все радости только начинаются. И начинаются они с того, что прежде «тяжелые» программные пакеты, такие как Microsoft Office Ultimate, Adobe Creative Suite, Pinnacle studio и другие — устанавливаются за считанные минуты (как правило — 2-3). И запускаются на порядок быстрее, чем будучи установленными на HDD.

Впрочем, можно говорить долго. Сказать, что «SSD очень быстр» — значит не сказать ничего. Речь идет об ускорении в десятки(!) раз. По сути в полной мере это представить трудно — можно только увидеть, непосредственно работая с SSD.

В качестве однозначного и абсолютного вердикта — переход на SSD имеет смысл вне зависимости от того, мощный или слабый ваш компьютер; ноутбук это или «настольник». Необходимо только быть начеку, и помнить обо всех особенностях SSD, чтобы быть готовым к возможным проблемам.

Все же SSD не настолько отработанная технология, чтобы считать ее абсолютно надежной.

За те две недели, что я использую Corsair Force 3 я могу однозначно порекомендовать его для использования абсолютно каждому, вне зависимости от целей и задач.

Это может показаться странным, но на самом деле, абсолютно ЛЮБОЙ присутствующий на рынке современный SSD будет однозначно значительно быстрее жестких дисков. Но при этом разница между самым быстрым и самым медленным твердотельным диском такая, что ей можно пренебречь: в реальных задачах такая разница может выражаться не более, чем в нескольких секундах задержки выполнения каких-то тяжелых операций.

Вместо заключения — информация о накопителе, по данным программы SSDLife Pro (которую, кстати, должен иметь каждый владелец SSD, чтобы отслеживать здоровье накопителя хотя бы эпизодически):

10 полезных советов и ответы на вопросы: тем, кто решил приобрести SSD

1. Не покупайте модели, у которых паспортная скорость чтения/записи ниже 300 Мбайт/с. Эти модели с высокой долей вероятности принадлежат к старому поколению. Конечно, этот совет не панацея, но такая внимательность убережет вас от «попадания» на накопитель, «страдающий» проблемами (SSD первого поколения принесли немало головной боли многим владельцам).

2. Вопрос: «Мой компьютер поддерживает только SATA2, будет ли с ним нормально работать SSD с SATA3 6 Гбит?»
Ответ: Да, будет работать нормально! И более того, если вы покупаете SSD который не поддерживает SATA3, скорее всего — он устаревший.

Но стоит учесть, что ДАЖЕ если скорость накопителя ограничивается вашим устаревшим SATA2 (т.е. 300 Мбайт/сек), это УЖЕ в десятки раз больше, чем обеспечивает жесткий диск.

3. Вопрос: «Почему Вы говорите об ограниченности ресурса SSD? Даже если взять, что данные на SSD можно записать не более 3000 раз, то скажем, накопитель объемом 100 Гбайт умрет только после того, как на него будет записано 300 Тбайт. Ведь этого хватит надолго!»

Ответ: В данном случае «на долго» понятие субъективное. Кто-то занят на компьютере только тем, что пользуется браузером, смотрит фильму и отвечает на почту. А кто-то работает на системном диске с HD видео, производит рендеринг, обрабатывает несжатое аудио и т.п. Такие задачи ОЧЕНЬ сильно повышают нагрузку, объем трафика, который записывается/считывается с накопителя, и следовательно — это «убивает» его быстрее.

Так же стоит учесть, что в рассматриваемом примере цифра 300 Тбайт – это т.н. «дата кончины» накопителя, полного отказа. Но в реальных условиях он УЖЕ теряет свои скоростные свойства при 30-40% от первоначального ресурса.

Если учесть еще и этот фактор – что по мере старения накопитель теряет свои качества, то фактический его ресурс еще меньше тех самых вожделенных 300 Тбайт.

Так что если мы ведем речь о значительных нагрузках (а не обще-средне-пользовательских) на SSD, он не проживет долго — это факт, доказанный на практике.

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

5. Всегда покупайте SSD с запасом. Сэкономленные деньги выйдут вам, что называется, «боком», когда на накопителе станет тесно. Едва ли можно представить себе что-то худшее, чем ситуация, когда нужно экономить место.

К примеру, вот насколько у меня заполнен SSD:

6. Старайтесь держать накопитель заполненным не более, чем на 70-80%. Если продолжать заполнять SSD «под завязку», то быстродействие системы упадет на уровень обычного жесткого диска. Это связанно с особенностями файловой системы NTFS, которая при большой наполненности накопителя начинает сильно «тормозить».

7. Переназначьте такие папки, как «Мои документы», «Моя музыка» и другие — на жесткий диск. Это позволит вам экономить место на SSD и не создавать на нем лишний трафик. Ведь, как я уже замечал, для файлов вполне себе сгодится обычный HDD.

Чтобы сменит месторасположение пользовательских папок перейдите в свою папку пользователя, и каждой последовательно укажите другое расположение в свойствах:

8. Убедитесь в том, чтобы при использовании SSD в системе была отключена дефрагментация — это очень важно для здоровья накопителя:

Отключите службу Superfetch:

Эта служба вычисляет наиболее часто используемые приложения и подгружает их в оперативную память (на этапе загрузки Windows) для более быстрого запуска. При использовании SSD в этом нет смысла, т.к. любые приложения считываются с накопителя мгновенно.

9. Никогда НЕ перемещайте файл подкачки с системного диска SSD на обычный жесткий диск. В этом случае — теряется значительная часть скоростных преимуществ в работе всей системы в целом.

Вместе с тем, не стоит переживать что постоянное кэширование важных данных в файл подкачки «убивает» ваш SSD. На самом деле соотношение операций чтение/запись файла подкачки — 7 к 1 и выше. Т.е. в общей сумме — данные из файла подкачки чаще считываются, чем записываются.

А операции чтения, как известно, практически никак не влияют на здоровье SSD.

10. Если вы пользуетесь пиринговыми сетями (пример — торренты), не стоит размещать файлы, которые вы скачиваете/раздаете — на SSD. Ничто так не истощает ресурс твердотельного накопителя, как продолжительное использование его как площадки для файлообмена.

IOPS

IOPS (аббревиатура от англ. input/output operations per second — количество операций ввода-вывода в секунду; произносится как «ай-опс») — количество операций ввода-вывода, выполняемых системой хранения данных, за одну секунду. Один из параметров, используемых для сравнения систем хранения данных (жёстких дисков (НЖМД), твердотельных накопителей (SSD), сетевых хранилищ SAN, NAS) и оценки их производительности.

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

Программное обеспечение для измерения IOPS:

  • «Iometer» (разработано фирмой «Intel»);
  • «IOzone» (англ.);
  • «FIO» (англ.);
  • «CrystalDiskMark».

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

Величина IOPS зависит от многих параметров:

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

Перед запуском теста необходимо ознакомиться с рекомендациями производителя по его правильному проведению.

Характеристики производительности

Последовательный и произвольный доступ к носителю данных

Во время теста выполняются следующие операции:

  • чтение данных из блоков, расположенных на носителе последовательно (линейно);
  • запись данных в блоки, расположенные на носителе последовательно (линейно);
  • чтение данных из блоков, положение которых на носителе выбирается случайно (произвольно);
  • запись данных в блоки, положение которых на носителе выбирается случайно (произвольно).

При этом выполняется подсчёт количества операций, которое устройство способно выполнить за одну секунду.

При последовательном доступе к данным размер блока, обычно, выбирается больши́м (например, 128 КиБ). При произвольном доступе к данным размер блока, обычно, выбирается маленьким (например, 4 КиБ).

Параметр Описание
Всего IOPS Суммарное число операций ввода-вывода в секунду (при выполнении как чтения, так и записи)
IOPS произвольного чтения Среднее число операций произвольного чтения в секунду
IOPS произвольной записи Среднее число операций произвольной записи в секунду
IOPS последовательного чтения Среднее число операций линейного чтения в секунду
IOPS последовательной записи Среднее число операций линейной записи в секунду

Величина IOPS зависит от конструкции устройства. Для жёстких дисков и других электромеханических устройств при доступе к данным, расположенным в случайных блоках, IOPS зависит в первую очередь от скорости работы механической части устройства (от времени позиционирования головки (англ.)). Для SSD и устройств, подобных SSD, IOPS зависит в основном от алгоритмов прошивки (выполняемой микроконтроллером) и скорости работы интерфейса памяти. На обоих типах устройств количество IOPS при последовательном доступе к данным (при большом размере блока) оказывается максимальным.

Зная IOPS и размер блока, можно вычислить скорость выполнения операций:

байт_в_секунду = IOPS * размер_блока_в_байтах.

Скорость, обычно, измеряется в Мбайт/с. Для преобразования из Байт/с в МБайт/с нужно поделить на 1 048 576.

Производительность некоторых жёстких дисков можно увеличить, если:

  • увеличить размер очереди, в которую попадают запросы на чтение и запись. Обслуживанием очереди занимается контроллер диска;
  • заставить контроллер диска выполнять переупорядочивание элементов очереди, например, TCQ (англ. tagged command queuing) или NCQ (англ. native command queuing).

У жёстких дисков величины IOPS на запись и IOPS чтение примерно одинаковые. У большинства SSD на основе флэш-модулей NAND величина IOPS на запись значительно меньше величны IOPS на чтение. Это объясняется тем, что при попытке повторной записи в один и тот же блок запускается сборка мусора, и запись выполняется в менее используемый блок для увеличения срока службы носителя.

IOPS современных SSD с flash памятью намного выше IOPS жёстких дисков. Фирма «Xssist» провела тестирование одного из таких SSD — Intel X25-E 64 GB G1 со следующими условиями:

  • программа: Iometer;
  • размер блока: 4 KB;
  • режим доступа: произвольный;
  • отношение количества операций чтения к количеству операций записи (англ. read/write ratio): 70/30;
  • размер очереди (англ. queue depth): 4;
  • продолжительность тестирования: более 8 часов.

Результаты теста:

  • первые 8 минут величина IOPS сохранялась на уровне 10 000 IOPS;
  • в течение следующих 42 минут величина IOPS резко опустилась до 4000 IOPS и стала понемногу снижаться;
  • в течение следующих 50 минут и до конца теста величина IOPS изменялась от 3000 IOPS до 4000 IOPS.

Даже после резкого падения производительности (примерно через 50 минут после начала теста) величина IOPS была намного выше IOPS жёсткого диска.

Примечания

  1. 1 2 Lowe, Scott Calculate IOPS in a storage array. techrepublic.com (12 февраля 2010). Дата обращения 3 июля 2011.
  2. Getting The Hang Of IOPS v1.3 (3 августа 2012). Дата обращения 15 августа 2013.
  3. iometer.org — официальный сайт проекта «Iometer».
  4. Axboe, Jens Flexible IO Tester. Дата обращения 4 июня 2010. (исходный код доступен на сайте http://git.kernel.dk/).
  5. crystalmark.info — сайт проекта «CrystalDiskMark».
  6. Smith, Kent Benchmarking SSDs: The Devil is in the Preconditioning Details. SandForce.com (11 августа 2009). Дата обращения 5 мая 2015.
  7. Hu, X.-Y. and E. Eleftheriou, R. Haas, I. Iliadis, R. Pletka. Write Amplification Analysis in Flash-Based Solid State Drives (PDF) (недоступная ссылка). IBM (2009). Дата обращения 2 июня 2010. Архивировано 4 октября 2013 года.
  8. SSDs — Write Amplification, TRIM and GC. OCZ Technology. Дата обращения 31 мая 2010.
  9. Intel Solid State Drives. Intel. Дата обращения 31 мая 2010.
  10. Intel X25-E 64GB G1, 4KB Random IOPS, iometer benchmark (27 марта 2010). Дата обращения 1 апреля 2010.
  11. logo-symantec-dark-source
  12. News, Tips, and Advice for Technology Professionals — TechRepublic

> Ссылки

  • Что такое IOPS и что он показывает — Статья pc-hard.ru, 2011.
  • О производительности: IOPS vs. MB/s — Статья blog.aboutnetapp.ru, 2007.

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)
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.

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