16 сент. 2016 г.

Тестирование SSD Kingston DC400

Корпоративные SSD от Kingston

Компания Kingston Technology знаменита в первую очередь модулями оперативной памяти, накопителями USB-флеш и относительно недорогими, но качественными накопителями SATA SSD для домашних пользователей. При этом Kingston достаточно давно присутствует на рынке SSD корпоративного класса, пусть и со сравнительно небольшим количеством моделей.
Появившийся в 2009 Kingston SSDNow E был не самостоятельной разработкой, а OEM-разновидностью очень популярного в то время Intel X25-E на базе памяти SLC. Позже портфолио компании дополнилось моделями E50 и E100, которые долгое время оставались популярными благодаря хорошему соотношению между ценой и производительностью.

Kingston DC400

Kingston DC400 был официально представлен 29 августа 2016. Новая линейка SSD относится к новому классу бюджетных накопителей для дата-центров. Они обладают сравнительно небольшим ресурсом, то есть предназначены для нагрузок с преимущественным чтением, где эти накопители демонстрируют высокую производительность и стабильный уровень задержек. Конденсаторная защита от потери питания отсутствует, но при этом обеспечивается защита целостности метаданных. Большим преимуществом таких бюджетных SSD является цена — чуть дороже домашних SSD.
Примером накопителя подобного класса может служить Intel S3100, с которым мы и будем сравнивать новинку от Kingston. Первое отличие — Kingston предлагает больший объём, от 400 до 1800 ГБ, в то время как максимальный объём Intel S3100 составляет 1000 ГБ.

Дизайн Kingston DC400 — легко узнаваемый прочный алюминиевый корпус и большая наклейка с фирменным логотипом.

Характеристики

  • Объём: 400, 480, 800, 960, 1600, 1800 ГБ
  • Форм-фактор: 2,5", высота 7 мм
  • Интерфейс: SATA 3.0 6 Гбит/с
  • Производительность
    • Последовательный доступ: чтение — 555 МБ/с, запись — 510 МБ/с
    • Случайный доступ (блок 4 КиБ, модель 1600 ГБ): чтение — 78000 IOPS, запись — 32000 IOPS
    • QoS задержки (блок 4 КиБ, случайный доступ, перцентиль 99,9%): 400 мкс / 4 мс
  • Эмулируемый размер сектора: 512 байт (физический/логический)
  • Ресурс (модель 1600 ГБ): 0,57 DWPD
  • Гарантийный срок: 5 лет

Результаты тестирования

Условия тестирования

Конфигурация тестового стенда:
  • Процессор Intel Xeon E5-2660 V3 (10 ядер, 2,6 ГГц, HT включен)
  • 32 ГБ памяти
  • Системная плата Supermicro X10SRi-F (1x socket R3, Intel C612)
  • SAS3 HBA Avago 9300-8i (драйвер 12.00.00.00-1, прошивка 12.00.00.00)
  • CentOS Linux 7.2 X86_64
  • Для генерации нагрузки применялся FIO версии 2.12
Тестируемое устройство:
  • Kingston DC400 1600 ГБ (SEDC400S371600G)
  • Серийный номер: 50026B726604DCB4
  • Прошивка: SAFM32.D
  • Объём: 1 600 321 314 816 байт (1,46 ГиБ)*
*Как и другие производители HDD и SSD Kingston указывает объём в «десятичных» гигабайтах (1 гигабайт = 109 байт), в ОС и прикладном ПО используются двоичные приставки (1 гибибайт = 230 байт).
Использованы модифицированные тесты из SNIA Solid State Storage Performance Test Specification Enterprise v1.1. Данная спецификация описывает алгоритмы различных тестов и формат отчетов. Ниже приведены параметры тестов и отличия от SNIA PTS:

  • IOPS Test. Измеряется количество IOPS (операций ввода-вывода в секунду) для блоков различного размера (1024 КиБ, 128 КиБ, 64 КиБ, 32 КиБ, 16 КиБ, 8 КиБ, 4 КиБ, 0.5 КиБ) и случайного доступа с различным соотношением чтение/запись (100/0, 95/5, 65/35, 50/50, 35/65, 5/95, 0/100). Параметры: 16 потоков с глубиной очереди 8. Отличие от спецификации — из теста был исключён блок 0,5 КиБ (512 байт).
  • Throughput Test. Тестируется пропускная способность при последовательном доступе: чтение и запись блоками 1 МиБ и 128 КиБ.
  • Latency Test. Измеряется значение средней и максимальной задержки для различных размеров блока (8КиБ, 4КиБ, 0.5КиБ) и соотношений чтение/запись (100/0, 65/35, 0/100) при минимальной глубине очереди (1 поток с QD=1). Отличия от спецификации:
    • исключён блок 0,5КиБ
    • вместо однопоточной нагрузки с очередями 1 и 32 нагрузка варьируется по количеству потоков (1, 2, 4) и глубине очереди (1, 2, 4, 8, 16, 32)
    • вместо соотношения 65/35 используется 70/30
    • приводятся не только средние и максимальные значения, но и перцентили 99%, 99,9% и 99,99%.
    • для выбранного значения количества потоков строятся графики зависимости задержки (99%, 99,99% и среднего значения) от IOPS для всех блоков и соотношений чтение/запись
    Для данного накопителя мы дополнительно приводим графики задержки для нагрузок со 100% и 30% записи блоками 4 КиБ при выделении дополнительной резервной области в 15, 30 и 50% от объёма накопителя.
  • Write Saturation Test. Тестируется изменение производительности (IOPS и задержка) при непрерывной нагрузке (1200 раундов по 1 минуте) на случайную запись блоками 4 КиБ. Цель — добиться перехода SSD в режим насыщения, при котором контроллеру приходится непрерывно заниматься сборкой мусора для подготовки пригодных для записи блоков NAND.
  • Host Idle Recovery. Тестируется эффективность работы алгоритмов сборки мусора. После перехода в режим насыщения: непрерывная нагрузка на случайную запись чередуется с облегчённой нагрузкой (5 секунд + паузы 5, 10, 15, 25, 50 секунд). Отличие от спецификации — вместо рекомендованной спецификацией предварительной нагрузки длительностью менее 30 раундов (минут) используется 1200 раундов (минут) для обеспечения гарантированного перехода SSD в режим насыщения.

Для первых трех тестов проводится серия замеров из 25 раундов длительностью 1 минута каждый. Перед тестом производится зануление (в данном случае — форматирование через sg_format), затем — предварительная нагрузка: последовательная запись блоками 128 КиБ до достижения 2-кратной емкости. Далее выбирается по одной из величин окно установившегося состояния (4 раунда), которое проверяется построением графика. Критерии установившегося состояния: линейная аппроксимация в пределах окна не должна выходить за границы 90%/110% среднего значения.

SNIA PTS: IOPS test (IOPS при варьировании размера блока и соотношения чтение/запись)

Сравнение с заявленными характеристиками:
  • 4 КиБ чтение: 65 тыс. IOPS
  • 4 КиБ запись: 48 тыс. IOPS
  • 8 КиБ чтение: 39 тыс. IOPS
  • 8 КиБ запись: 35 тыс. IOPS
  • 4 КиБ 65/35 чтение/запись: 44 тыс. IOPS
Kingston DC400 демонстрирует очень приличные показатели для накопителя бюджетного класса, для которых типичным является 5–10 тыс. IOPS на запись.

SNIA PTS: throughtput test

Пропускная способность при последовательном однопоточном доступе блоками 128 КиБ с глубиной очереди 128.
Сравнение с заявленными характеристиками:
  • 128 КиБ последовательное чтение: 516,6 МиБ/с
  • 128 КиБ последовательная запись: 464,2 МиБ/с
Производительность на чтение вплотную приближается к пределу пропускной способности интерфейса SATA 3. Более 400 МиБ/с на запись является отличным результатом для накопителей, позиционируемых как read intencive. Мы не проводили собственное тестирование накопителей Intel S3100, но заявленная в спецификации производительность при последовательной записи у них существенно ниже — до 118 МиБ/с.
Для сравнения приведены результаты трёх других накопителей: Kingston E50, OCZ Saber 1000 и Toshiba HK3R.

SNIA PTS: latency test

Приведены значения задержки в микросекундах (средняя, и перцентили 99%, 99.9%, 99.99%) при одном потоке с глубиной очереди 1 в зависимости от размера блока и соотношения чтение/запись (100% чтение, 70/30 чтение/запись, 100% запись).

Kingston SEDC400S371600G
Задержка4КиБ 8КиБ
Средняя
Чтение 182 219
Запись 70 62
Чтение/запись 70/30% 427 339
99%
Чтение 239 307
Запись 135 130
Чтение/запись 70/30% 3184 2119
99,9%
Чтение 271 337
Запись 524 153
Чтение/запись 70/30% 3817 3483
99,99%
Чтение 316 369
Запись 5000 189
Чтение/запись 70/30% 5200 4260

Здесь мы наглядно видим особенности корпоративного класса, пусть и бюджетного — низкий и стабильный уровень задержек. Для чтения (Kingston DC400 заявлен как SSD для преимущественной нагрузки на чтение) держится в пределах существенно меньше 1 мс (перцентиль 99,99% — 0,3 мс, не приведённое в таблице пиковое значние — 0,6 мс).

Latency vs IOPS test

Данные усреднялись по четырём из 25-ти раундов длительностью 35 секунд (5 «прогревочных» + 30-секундная нагрузка) каждый. Для графиков выбрана серия значений с глубиной очереди от 1 до 32 при одном потоке. По мере увеличения глубины очереди растёт задержка, и по подобному графику можно оценить не просто абстрактное число IOPS, а производительность с учётом задержки. Kingston DC400 демонстрирует хорошую оптимизацию для чтения — даже при максмальной для устройств с интерфейсом SATA глубине очереди 32 средняя задержка не превышает нескольких сотен микросекунд и остается стабильной — перцентиль 99,99% не превышает миллисекунду с небольшим.
Средняя задержка.
99,99% перцентиль задержки.

Дополнительный Over Provisioning

SSD для домашнего применения и бюджетные корпоративные модели обладают сравнительно небольшим ресурсом и низкой производительностью на запись. Помимо архитектурных особенностей (недорогая медленная NAND-память, производительность контроллера SSD и особенности его прошивки) это определяется объёмом резервной области.
Предыдущие тесты наглядно продемострировали нам, что Kingston DC400 оптимизирован для нагрузок на чтение (собственно, для них он изначально и предназначен). Появление даже 30% записи в нагрузке приводит к увеличению задержек более чем на порядок. Можно ли исправить эту ситуацию, увеличив резервную область SSD, которая увеличит порог перехода к состоянию насыщения (когда будет исчерпан пул подготовленных для записи блоков)? Конечно можно, любым из традиционных способов:
  • При помощи утилиты от производителя.
  • Задать HPA при помощи hdparm (для дисков SATA). Для NVMe — создать namespace меньшего объёма.
  • Выполнить secure erase и создать раздел меньшего объёма. При подключении через RAID-контроллер — том объёмом меньше максимального.

Для увеличения резервной области были выбраны значения в 15, 30 и 50% от штатного объёма SSD. Результаты для 15%-го OP и 100% записи получились странными — производительность получилась ниже, чем без дополнительного OP. Остальные результаты получились предсказуемыми:
  • Дополнительная резервная область в 30% от штатного объёма приводит к существенному росту производительности. Например, при средней задержке в 1 мс на нагрузке «70/30 чтение/запись» мы получаем почти 2-кратный прирост — 33 тыс. IOPS вместо 17 тыс. Если, наоборот, зафиксировать требуемое кол-во IOPS на отметке 20 тыс., то мы получаем 6-кратное снижение средней задержки.
  • Дальнейшее наращивание резервной области свыше 30% не имеет смысла, соответствующие линии на графиках практически совпадают.

Средняя задержка.
99,99% перцентиль задержки.

SNIA PTS: Write Saturation Test (насыщение при случайной записи блоками 4КиБ)

Рост объёмов современных SSD вынуждает увеличивать продолжительность данного теста. Стандартных 360 минут уже не достаточно для выхода в режим насыщения — тест был увеличен до 1200 минут.
Kingston DC400 снижает производительность с 48 до 25 тыс. IOPS — результат на уровне более дорогих конкурентов с ресурсом в 2-3 DWPD. Для упоминавшегося выше приблизительного аналога Intel S3100 заявлено всего 4700 IOPS.
На следующем графике представлены задержки — от среднего (в пределах каждого 60-секундного раунда) до максимума, плюс перцентили 99%, 99,9% и 99,99%. Этот график, как и предыдущий, наглядно демонстрирует особенности прошивки Kingston DC400 — так как данный SSD просто не предназначен для интенсивной нагрузки на запись (тем более непрерывной многочасовой случайной записи малыми блоками, как в данном тесте), то всё внимание уделено сохранению небольшого ресурса. Для этого алгоритм сборки мусора преднамеренно сделан «ленивым» — он не вступает в действие до полного исчерпания свободных для записи блоков NAND и затем запускается периодически, подготавливая сразу большие порции блоков. Таким образом, в жертву производительности приносится ресурс. Контроллер не допускает так называемого «усиления записи» за счёт постоянно работающей сборки мусора, перемещающей данные между блоками.


SNIA PTS: Host Idle Recovery

Графики для этого теста приведены для одной половины накопителя. Напомним, что данный тест проводится после предыдущего, т.е. накопитель находится в режиме насыщения, с небольшим запасом подготовленных для записи ячеек. Производительность на запись снижена, далее мы даём накопителю возможность восстановить её, прерывая серию из 360 раундов с непрерывной нагрузкой (чёрный цвет на графике) сериями из 360-ти раундов с увеличивающимися паузами:
  • 5 секунд нагрузки + 5 секунд паузы
  • 5 секунд нагрузки + 10 секунд паузы
  • 5 секунд нагрузки + 15 секунд паузы
  • 5 секунд нагрузки + 25 секунд паузы
  • 5 секунд нагрузки + 50 секунд паузы

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

Средняя задержка:

Перцентиль 99,99%:

Заключение

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