11 июн. 2014 г.

Как мы тестируем SSD: Kingston E100 vs Intel S3700

В описанных ниже методиках тестирования производительности SSD нет ничего нового. Это первые четыре теста в соответствии со спецификацией SNIA Solid State Storage Performance Test Specification Enterprise v1.1: IOPS, Throughtput, Latency, Write Saturation. Описание и условия есть в статье на основном сайте True System: Обзор SSD OCZ Intrepid 3800.
Сам по себе обзор Kingston E100 и сравнение результатов синтетических тестов производительности с Intel S3700 тоже не представляют особой ценности. Соответствующие обзоры были опубликованы 1,5 года назад на StorageReview с примерно аналогичными результатами. Цель проста: показать, какие методики тестирования производительности SSD мы используем сейчас и намерены использовать в дальнейшем при тестировании новинок, продемонстрировать серьезность подхода в сочетании с возможностью представления результатов на красивых графиках (за что, в частности, любят тот же StorageReview). Особенно интересны будут пока еще не доехавшие до нас NVMe SSD от Intel и других производителей.

Как упоминалось выше, описание тестов, конфигурацию стенда и другие подробности можно найти в обзоре новых eMLC SSD от возрожденной OCZ (OCZ Storage Solutions) — Intrepid 3800. Остается добавить, что для самих тестов используется fio, для построения графиков (кроме 3D) — gnuplot. Для проверки выхода на установившееся состояние используется способ, описанный в спецификации SNIA PTS — проверка на выход линейной аппроксимации графика в выбранном окне за пределы +-10% от среднего значения. Пример:
В нашем распоряжении находится Kingston E100 (SE100S3200G) объемом 200ГБ, с последней прошивкой 515ABBF0.

Результаты


IOPS Test

График IOPS при различных значения размера блока и соотношениях чтение/запись:
Обычно для SSD указывают значение IOPS для блока 4КиБ на чтение и запись (значение задержки при этом не контролируется): 57147 IOPS на чтение и 22262 IOPS на запись. Производитель указывает 59000/76000 IOPS без указания методики тестирования (т.е. это пиковые значения для "свежезануленного" SSD), но и реальные результаты неплохи. Де-факто эталонный на сегодняшний день среди eMLC SSD с интерфейсом SATA, Intel S3700 продемонстрировал 30425/40524 IOPS на чтение и запись соответственно. На блоках 8К отрыв S3700 на запись увеличивается: 24125/30730 (Intel S3700) и 35514/8932 IOPS (Kingston E100).

Throughtput Test

На графике дополнительно представлен вышеупомянутый OCZ Intrepid 3800:
Ситуация со случайным доступом повторяется. На последовательном доступе аналогичная картина: чуть лучше на чтение, хуже на запись.

Latency Test

Проверяется задержка (средняя и максимальная) при одном потоке с глубиной очереди = 1.
Средняя задержка:
Максимальная задержка:

Сравнение с Intel S3700 для блока 4K:

Сами по себе результаты неплохи для eMLC 2012 года, но в сравнении с Intel S3700 выглядят не очень хорошо.

Write Saturation Test

Непрерывная нагрузка на случайную запись (8 потоков с QD=16) блоками 4K в течение 10 часов. Такая нагрузка приводит к исчерпанию пула свободных блоков и показывает способность SSD эффективно справляться со сборкой мусора. На графиках IOPS и задержек у любых можно увидеть резкое снижение производительности после того, как заканчиваются свободные для записи блоки в основном и резервном пространстве. После этого контроллер SSD вынужден заниматься своего рода дефрагментацией ячеек с мусорными данными, размещая незавершенные IO в кэше. От эффективности алгоритма сборки мусора и аппаратных возможностей контроллера будет зависеть степень деградации производительности заполненного SSD.
График 1: IOPS.
Начинают оба SSD одинаково. Производительность в состоянии "из коробки" — порядка 43 тыс. IOPS на запись, но после заполнения Kingston проседает до 8000 против 32000 у Intel S3700. Разумеется, Write Saturation Test — это экстремальный синтетический тест и в реальности непрерывная нагрузка со 100% записью практически не встречается, у SSD практически всегда есть достаточно времени на сборку мусора для пополнения запаса чистых блоков.
Графики 2 и 3. Средняя задержка, максимальная задержка.

Среднее значение задержки в тесте WSAT вычисляется в пределах 1-минутного раунда (всего их 600), максимальное значение задержки в пределах раунда тоже записывается и по нему строится отдельный график.
Ситуация со средней задержкой опять не в пользу Kingston: после заполнения контроллер SSD начинает тратить много времени на подготовку чистых блоков и задержка вырастает в 6 раз.
Несмотря на существенно более низкий уровень средней задержки Intel S3700 демонстрирует периодические пики, превышающие среднее значение более чем на два порядка, что может не лучшим образом сказаться на реальной производительности приложений. Kingston E100 демонстрирует более стабильное поведение.

Заключение

Остается реализовать остальные, более сложные тесты SNIA PTS. Особенно важным будет Demand Intensity / Response Time Histogram, показывающий зависимость соотношения IOPS/задержка от нагрузки (количества потоков и глубины очереди) и распределение значения минимальной/средней/максимальной задержки.