|
Сравнение производительности с ёмкостью
Нам очень нравится HDTune Pro. Это неплохой комплексный тест для систем хранения данных, в котором содержится ряд полезных инструментов. Утилита прекрасно подходит для тестирования жёстких дисков и немного не "заточена" под SSD. Самой заметной функцией ПО является возможность записывать и читать всю поверхность накопителя. При тестировании механических дисков легко наблюдать, как падает скорость при переходе с внешних на внутренние дорожки. Но это просто физика процесса. В случае с SSD "поверхность" - это вся ёмкость накопителя за исключением зарезервированной области, которая не отображается физически.
Но есть и весомые причины использовать HDTune для обзора SSD, хотя и с учётом некоторых заметных ограничений. Самое удивительное – это то, что HDTune записывает легкосжимаемые нули, что не совсем подходит для тестирования технологий SandForce. Также следует внимательно контролировать ход прогона. Мы в лаборатории создали специальный скрипт для этих целей
Предварительно удалив с накопителя все данные, мы заполняем всю ёмкость SSD и отображаем наши результаты в процентах от ёмкости. 256- и 512-гигабайтные SSD мы разделили на последовательные области, каждая их которых составляет 1/200 от общей ёмкости. Затем средняя скорость передачи данных для каждого сегмента представлена как "точка данных", представляющая собой 0,5% "поверхности".
Вот как на двух накопителях
Тестирование уровня насыщения при записи и увеличения объёма зарезервированного пространства
Производительность произвольных операций в течение времени
Тест на производительность по мере заполнения состоит в записи на накопитель в течение определённого времени при определённой рабочей нагрузке. Технически данный тест проводится в сфере корпоративных решений, где всё адресное пространство SSD используется для операций произвольной записи на высоких глубинах очереди.
Здесь представлены два графика – с временными отрезками в 500 минут с поминутными показателями и в 20 минут с разметкой по шкале в одну секунду. Опять же, это своего рода произвольные нагрузки, при которых производительность на пике достигает всего 22000 IOPS (хотя некоторые случайные нагрузки будут постоянно воздействовать на адресное пространство на глубине очереди в 32 команды). В частности, в этом тесте "умная" технология nCache обеспечивает более низкую производительность. В основном, при большинстве рабочих нагрузок, которым будет подвергаться
Во время тестирования с помощью исходных данных на 20-минутном отрезке стационарная производительность задействует только лишь 7% свободного пространства, не позволяя затронуть больше. Минимальный показатель равен 2472 IOPS, средний составляет 4445 IOPS, а максимальный достигает 7384 IOPS, что выглядит неплохо. Впрочем, мы хотим знать больше, поэтому будем надеяться, что краткий обзор тестирования увеличения объёма зарезервированного пространства поможет нам кое-что выяснить.
Увеличение объёма зарезервированного пространства
По-настоящему измерить его в нашей лаборатории мы не сможем, но есть множество способов использовать пространство для получения более высокой производительности; мы можем убедить нашу операционную систему, например, в том, что устройство обладает меньшим количеством адресов логических блоков, хотя сам накопитель знает, сколько их на самом деле. Для рабочих нагрузок будет лучше, если мы пожертвуем частью пространства. Таким образом, остаётся больше возможности для фоновых процессов (таких, как "сборка мусора"), а результаты могут быть ещё более высокими, даже если контроллеру предстоит сопоставить размер существующего пространства. Если мы начнем с числа байт, доступных пользователю (256052966400 в данном случае), то можем снова прогнать тест уровня насыщения при записи. Каждый следующий раз (после безопасного удаления) количество доступного пространства станет уменьшаться.
На следующей диаграмме демонстрируется пять различных показателей: всё пространство (см. выше), 93%, 84%, 50% и 25%.
Производительность возрастает почти в два раза, если мы приносим в жертву 7% адресного пространства, а следующий показатель с остаточной ёмкостью 84% позволяет
Наконец, в том же эксперименте с увеличением объёма зарезервированного пространства представлен 20-минутный отрезок, взятый в конце многочасового цикла и показанный с разметкой по шкале в одну секунду. Как вы видите, здесь разница между минимальным, максимальным и средним значениями IOPS достаточно велика.
Tom's Hardware Storage Bench
Наш собственный тест, Storage Bench v1.0, использует информацию об операциях ввода-вывода из трассировки, записанной в течение двух недель. Повторно воспроизводя данный шаблон с целью проверки производительности накопителя, мы получаем результаты, которые, на первый взгляд, трудно истолковать. В результатах практически не учтены периоды простоя, то есть мы можем принимать во внимание только время, в течение которого накопитель был в активном состоянии и исполнял команды хоста. Таким образом, вычислив соотношение времени работы накопителя к объёму данных, обработанных в ходе трассировки, мы получаем показатель средней скорости передачи данных (в Мбайт/с), по которому можем сравнивать участников теста. Поскольку тест подразумевает установку программ, трассировка включает последовательно записываемые сжимаемые и несжимаемые данные.
Эта система измерений не идеальна. Изначальная трассировка регистрирует команды TRIM в процессе транзита, но так как трассировка организована на накопителе без файловой системы, TRIM не будет работать, даже если её направили во время повторного воспроизведения трассировки (что, к сожалению, не так). Но всё же тестирование при помощи трассировки – отличный способ зафиксировать периоды времени, когда накопитель действительно работает, что имеет преимущества в сравнении с синтетическими тестами типа Iometer.
Несжимаемые данные и Storage Bench v1.0
Стоит также отметить, что во время нашего теста на базе трассировки несжимаемые данные направляются через буфер системы на тестируемый накопитель. Таким образом, когда воспроизведение трассировки повторяет процесс записи данных, записываются в основном несжимаемые данные. Если мы используем наш тест Storage Bench при тестировании SSD на основе контроллера SandForce, мы можем обратиться к показателям SMART для получения более подробной информации.
Mushkin Chronos Deluxe 120 Гбайт | Рост необработанного значения |
#242 операции чтения с хоста (в Гбайт) | 84 Гбайт |
#241 операции записи с хоста (в Гбайт) | 142 Гбайт |
#233 операции записи сжимаемых данных с NAND (в Гбайт) | 149 Гбайт |
Скорость чтения данных с хоста намного меньше скорости записи. Всё это обусловлено особенностями процесса трассировки. Но ввиду наличия встроенных возможностей дедупликации и сжатия данных контроллера SandForce, объём данных, записываемых на флэш-память, должен быть ожидаемо меньше, чем объём операций записи с хоста (конечно, при условии, что данные большей частью сжимаемые). На каждый гигабайт данных, записанных по команде хоста, SSD Mushkin приходится записывать 1,05 Гбайт.
Если бы воспроизведение трассировки подразумевало запись легкосжимаемых нулей из буфера, мы увидели бы, что количество операций записи на память NAND во много раз меньше, чем количество операций записи с хоста. Такой подход позволяет участникам теста соревноваться на равных, вне зависимости от возможностей контроллера сжимать данные на лету.
Средняя скорость передачи данных
Трассировка в Storage Bench генерирует более 140 Гбайт операций записи в ходе тестирования. Очевидно, это ставит в заведомо невыгодное положение SSD ёмкостью ниже 180 Гбайт и благоприятствует тем участникам теста, ёмкость которых превышает 256 Гбайт.
Мы не включали накопитель
Время до возобновления обслуживания
Благодаря Storage Bench, мы можем собрать много информации помимо средней скорости передачи данных. Среднее время до возобновления обслуживания показывает, насколько отзывчив накопитель, подверженный средней нагрузке операций ввода-вывода при трассировке. Нам будет технически трудно нанести на график отметки до десяти миллионов операций ввода-вывода, поэтому для оценки среднего времени до возобновления работы мы будем использовать I/O. Также мы можем указать стандартную погрешность относительно среднего времени до возобновления обслуживания. Таким образом, накопители, демонстрирующие более низкий и постоянный показатель времени до возобновления обслуживания, на графике располагаются ниже (следовательно, их результат лучше).
Время задержки записи – это общее время, необходимое на ввод или вывод операции операционной системой, передачу по подсистеме хранения, подтверждение устройства хранения и подтверждение операции устройством. Задержка чтения аналогична. Операционная система запрашивает у устройства хранения данные, хранящиеся в определённом месте, SSD считывает информацию и посылает на хост. Современные компьютеры быстры, также как и SSD, но по-прежнему существует большая задержка, вызываемая временем транзакции системы хранения.
Обе новинки SanDisk располагаются за устройствами
Сочетание флэш-памяти eX2 Toggle-mode на основе техпроцесса 19 нм с флэш-контроллерами Marvell хоть и даёт мощный эффект, но и этого недостаточно, чтобы опередить конкурентов в лице Samsung и OCZ. Разница в показателе задержки чтения по сравнению с моделями на лидирующих позициях составляет примерно 10%.
Новейшие высококлассные устройства Samsung и OCZ обладают изумительными характеристиками операций записи, причём, в сравнении с моделями, выпущенными несколько лет назад, современные накопители невероятно быстры, и это относится не только к процессу последовательной записи. Но нас, пожалуй, больше впечатлила способность SSD производить операции ввода/вывода с минимальной задержкой. Накопители SanDisk в этом случае не являются исключением, а