Тестирование NVMe SSD Intel P3608
09.03.16
Предисловие
Если вы ещё не знакомы с накопителями NVMe, ничего не знаете о различиях между NVMe и другими PCI-E SSD, о преимуществах и форм-факторах NVMe-накопителей, то необходимую информацию можно найти в Википедии и в нашем предыдущем обзоре накопителя HGST SN150.
NVMe-совместимые накопители Intel
750/P3500/P3600/P3700
Компания Intel представила свои собственные NVMe накопители в июле 2014 года.[1] Три линейки корпоративных накопителей — P3500, P3600 и P3700, были выпущены в виде низкопрофильных плат расширения и накопителей 2,5" (форм-фактор U.2) объёмом от 400 до 2000 ГБ. Между собой линейки различались производительностью на запись и ресурсом: 0,3 / 3 / 17 DWPD и 35–175 тыс. IOPS на запись блоками 4 КиБ.[2] При производительности на чтение до 450 тыс. IOPS и последовательном доступе до 2,8/2,0 ГБ/с на чтение/запись, все эти накопители и на сегодняшний день остаются достаточно конкурентоспособными и популярными. Линейка Intel 750, удешевлённая версия для настольного применения, с меньшим ресурсом и без защиты от потери питания, тоже заняла достойные позиции в сегменте быстрых SSD для домашних ПК класса high-end и рабочих станций.
Время не стоит на месте, и через год у популярной средней линейки P3600 появились сильные конкуренты в лице HGST SN100/SN150 и OCZ 6300. При том же ресурсе в 3 DWPD они предлагают большую производительность на чтение и объём до 3,2 ТБ. Естественно, пришло время как-то улучшить Intel P3600. Что может быть лучше одного P3600? Только два P3600 в общем корпусе!
P3608
Каждая из трёх моделей линейки P3608 представляет собой «бутерброд» из двух P3600. Внешний вид карточки практически не изменился — всё тот же сплошной радиатор для охлаждения контроллера и чипов NAND, низкопрофильный форм-фактор и защитная пластина с обратной стороны платы. Вместо четырёх линий PCI-E 3.0 теперь используется восемь линий, что позволяет не ограничивать увеличенную производительность при последовательном доступе.
![](/images/20160305_Intel_P3608_review/Intel_P3608.jpg)
Мы не стали вскрывать наш экземпляр. Если вас интересует внутреннее устройство, скрытое под радиатором, то подробные фотографии можно увидеть в обзоре The SSD Review.[3] Для подключения двух контроллеров к шине PCI-E используется чип-коммутатор PLX PEX8718. Чипы NAND остались прежними — HET MLC, произведённые по 20 нм процессу. Естественно, потолок энергопотребление двойного накопителя выросло — максимум для модели на 4 ТБ составляет 40 Вт вместо обычных для стандартных NVMe накопителей 25 Вт. Как следствие — Intel P3608 не выпускается в форм-факторе U.2 (2.5").
Характеристики Intel P3608
- Объём: 1,6 ТБ, 3,2 ТБ, 4 ТБ
- Форм-фактор: низкопрофильная плата PCI-E
- Интерфейс: PCI-E 3.0 x8
- Производительность (для модели 1,6 ТБ)
- Последовательный доступ (блок 128КиБ): чтение — 5000 МБ/с, запись — 2000 МБ/с
- Случайный доступ (блок 4 КиБ): чтение — 850000 IOPS, запись — 150000 IOPS, 70/30 чтение/запись — 300000 IOPS
- Случайный доступ (блок 8 КиБ): чтение — 500000 IOPS, запись — 60000 IOPS, 70/30 чтение/запись — 160000 IOPS
- Средняя задержка (блок 4 КиБ, случайный доступ, чтение): 120 мкс (99% = 120 мкс, 99,99% = 3 мс)
- Средняя задержка (блок 4 КиБ, случайный доступ, запись): 30 мкс (99% = 500 мкс, 99,99% = 4,7 мс)
- Поддержка T10 DIF. Размер сектора: 512/520/528 и 4096/4160/4224 байт
- Ресурс: 3 DWPD
- Максимальное энергопотребление: 40 Вт
- Гарантийный срок: 5 лет
Подробнее — в официальной спецификации.[4]
Управление
Intel P3608 совместим со спецификацией NVMe 1.0.[4] Как и все NVMe-совместимые накопители, он поддерживает работу со стандартным драйвером NVMe и работу с nvme-cli[5], набором утилит для управления NVMe-накопителями с открытым исходным кодом.
Пример вывода команды nvme smart-log:[root@localhost info]# nvme smart-log /dev/nvme0 Smart Log for NVME device:/dev/nvme0 namespace-id:ffffffff critical_warning : 0 temperature : 34 C available_spare : 100% available_spare_threshold : 10% percentage_used : 0% data_units_read : 2 data_units_written : 0 host_read_commands : 136 host_write_commands : 0 controller_busy_time : 0 power_cycles : 2 power_on_hours : 0 unsafe_shutdowns : 0 media_errors : 0 num_err_log_entries : 0 Critical Composite Temperature Time : 0 Temperature Sensor 1 : 0 C Temperature Sensor 2 : 0 C Temperature Sensor 3 : 0 C Temperature Sensor 4 : 0 C Temperature Sensor 5 : 0 C Temperature Sensor 6 : 0 C Temperature Sensor 7 : 0 C Temperature Sensor 8 : 0 C
Как и остальные производители Intel предлагает собственную утилиту для управления под Windows и Linux под названием Intel SSD Datacenter Tool (ISDCT). Пример форматирования при помощи isdct (LBA Format=3
соответствует сектору 4096 байт):
isdct start -intelssd 0 Function=nvmeformat LBAFormat=3 SecureEraseSetting=1 ProtectionInformation=0 MetadataSetting=0
Intel предлагает использовать обычный драйвер NVMe для Linux и других ОС, кроме Windows и VMware, для которых предлагается собственный драйвер.
Результаты тестирования
Условия тестирования
Конфигурация тестового стенда:- Процессор Intel Xeon E5-2660 V3 (10 ядер, 2,6 ГГц, HT включен)
- 32 ГБ памяти
- Системная плата Supermicro X10SRi-F (1x socket R3, Intel C612)
- CentOS Linux 7.2 X86_64 и Microsoft Windows Server 2012 R2
- Для генерации нагрузки применялся FIO версии 2.6
- Драйвер для Windows — 1.3.0.1007
- Intel Intel SSD DC P3608 Series SSDPECME016T4 1,6 ТБ
- Серийный номер: CVF8542100401P6BGN
- Прошивка: 8DV10171
- Объём: 2x 800160657408 байт (2x 745,2 ГиБ)
Использованы модифицированные тесты из SNIA Solid State Storage Performance Test Specification Enterprise v1.1.[6] Данная спецификация описывает алгоритмы различных тестов и формат отчетов. Ниже приведены параметры тестов и отличия от 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 потоков с глубиной очереди 16. Отличие от спецификации — из теста был исключён блок 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, 8, 16) и глубине очереди (1, 2, 4, 8, 16, 32, 64, 128)
- вместо соотношения 65/35 используется 70/30
- приводятся не только средние и максимальные значения, но и перцентили 99%, 99,9% и 99,99%.
- для выбранного значения количества потоков строятся графики зависимости задержки (99%, 99,99% и среднего значения) от IOPS для всех блоков и соотношений чтение/запись
- Write Saturation Test. Тестируется изменение производительности (IOPS и задержка) при непрерывной нагрузке (360 раундов по 1 минуте) на случайную запись блоками 4 КиБ. Цель — добиться перехода SSD в режим насыщения, при котором контроллеру приходится непрерывно заниматься сборкой мусора для подготовки пригодных для записи блоков NAND.
- Host Idle Recovery. Тестируется эффективность работы алгоритмов сборки мусора. После перехода в режим насыщения: непрерывная нагрузка на случайную запись чередуется с облегчённой нагрузкой (5 секунд + паузы 5, 10, 15, 25, 50 секунд). Отличие от спецификации — вместо рекомендованной спецификацией предварительной нагрузки длительностью менее 30 раундов (минут) используется 360 раундов (минут) для обеспечения гарантированного перехода SSD в режим насыщения.
Для первых трех тестов проводится серия замеров из 25 раундов длительностью 1 минута каждый. Перед тестом производится зануление (в данном случае — Secure Erase через isdct), затем — предварительная нагрузка: последовательная запись блоками 128 КиБ до достижения 2-кратной емкости. Далее выбирается по одной из величин окно установившегося состояния (4 раунда), которое проверяется построением графика. Критерии установившегося состояния: линейная аппроксимация в пределах окна не должна выходить за границы 90%/110% среднего значения.
SNIA PTS: IOPS test (IOPS при варьировании размера блока и соотношения чтение/запись)
Для данного теста обе "половины" накопителя были объединены в RAID-0 с использованием mdadm. Размер страйпа в 128 КиБ был выбран в соответствии с рекомендацией Intel. Под Windows Intel рекомендует для построения массивов из NVMe-накопителей собственного производства использовать Intel RSTe.![](/images/20160305_Intel_P3608_review/iops_3d_plot.png)
- 4 КиБ чтение: 880 тыс. IOPS (заявлено 850)
- 4 КиБ запись: 407 тыс. IOPS (150)
- 8 КиБ чтение: 525 тыс. IOPS (500)
- 8 КиБ запись: 212 тыс. IOPS (60)
- 8 КиБ 65/35 чтение/запись: 282 тыс. IOPS (160 для 70/30)
Intel, как и HGST (см. обзор HGST SN150) добросовестно указывает в спецификации производительность на запись для наихудшего сценария, при котором накопитель переходит в так называемый режим насыщения. Данный тест предполагает лишь выход на установившееся состояние после 2-кратной последовательной записи, и P3608 демонстрирует в два с лишним раза большую производительность на запись в сравнении с заявленной.
Загрузка процессора не превышала 48,3% (100% чтение, 880 тыс. IOPS), в то время как при тестировании SAS HBA Avago 9305-24i на том же 10-ядерном Xeon E5-2660 V3 был достигнут лимит производительности в 1,2 млн. IOPS при 100% нагрузке на процессор. Дело в том, что накопители NVMe за счёт отказа от системы команд SCSI в пользу собственного небольшого набора команд и дополнительных оптимизаций всего стека работы с блочными устройствами позволяют тратить на обработку ввода-вывода существенно меньше процессорных тактов.
SNIA PTS: throughtput test
Пропускная способность при последовательном однопоточном доступе блоками 128 КиБ с глубиной очереди 128. Тест проводился параллельно на двух половинах, результаты складывались. Сравнение с заявленными характеристиками:- 128 КиБ последовательное чтение: 4857,4 МиБ/с (заявлено 4768,4)
- 128 КиБ последовательная запись: 1975,2 МиБ/с (1907,3)
Для сравнения приведены результаты измерений других PCI-E SSD. Для Intel P3600 данные взяты из официальной спецификации.[7] *
*Intel, как и большинство других вендоров указывает результаты тестов производительности в десятичных мегабайтах (1 МБ = 106 байт), так что был произведен соответствующий пересчёт (1 МиБ = 220 байт).
Накопитель Intel P3608 демонстрирует рекордную производительность последовательного доступа, особенно на чтение. В этом ему помогают два 18-канальных контроллера и шина PCI-E 3.0 x8 — ведь по сути это два Intel P3600 800ГБ на общей плате.
SNIA PTS: latency test
В данных таблицах приведены значения задержки в микросекундах (средняя, максимальная и перцентили 99%, 99.99%) при одном потоке с глубиной очереди 1 в зависимости от размера блока и соотношения чтение/запись (100% чтение, 65/35 чтение/запись, 0/100 = 100% запись). Для Intel P3608 используется новый вариант теста с соотношением чтение/запись 70/30% вместо 65/35%. Из-за силного расхождения результатов между Linux и Windows (см. ниже) данные приведены для Windows (под управлением драйвера NVMe от Intel). В скобках указаны заявленные значения.
HGST SN150 | HGST Flashmax III | Intel P3608 | Toshiba PX02SM | |||||
Задержка | 4КиБ | 8КиБ | 4КиБ | 8КиБ | 4КиБ | 8КиБ | 4КиБ | 8КиБ |
Средняя | ||||||||
Чтение | 94 | 104 | 143 | 154 | 67 (120) | 101 | 188 | 184 |
Запись | 21 | 24 | 41 | 53 | 16 (30) | 18 | 57 | 79 |
Чтение/запись 65/35% (70/30%) | 203 | 269 | 192 | 220 | 92 | 139 | 252 | 287 |
99% | ||||||||
Чтение | 251 | 175 | 159 | 178 | 125 (120) | 153 | 673 | 259 |
Запись | 36 | 39 | 124 | 200 | 31 (500) | 31 | 108 | 143 |
Чтение/запись 65/35% (70/30%) | 2030 | 2820 | 227 | 630 | 182 | 400 | 550 | 999 |
99,99% | ||||||||
Чтение | 3962 | 223 | 181 | 329 | 2832 (3000) | 2812 | 2768 | 526 |
Запись | 54 | 62 | 224 | 254 | 79 (4700) | 86 | 3310 | 7955 |
Чтение/запись 65/35% (70/30%) | 5782 | 6650 | 2983 | 3096 | 3096 | 3180 | 6624 | 7485 |
Intel также приводит значения 99% и 99,99% перцентилей задержки для глубины очереди 128 и блока 4 КиБ, их стоит сравнить:
- 99%, чтение: 753 мкс (заявлено 750)
- 99%, запись: 809 мкс (заявлено 25000)
- 99,99%, чтение: 3,2 мс (заявлено 7)
- 99,99%, запись: 6,7 мс (заявлено 30)
Задержка на запись оказалась существенно ниже заявленной, что обусловлено добросовестным подходом Intel при тестировании производительности — значения в спецификации приводятся для накопителя в режиме насыщения.
Latency vs IOPS test
Полученные значения задержки при однопоточном доступе на запись не соответствовали заявленным. Так как в Intel проводили тестирование под Windows Server 2012 R2, то стоило бы повторить тесты под этой ОС и заодно сравнить производительность при использовании стандартного драйвера NVMe и драйвера NVMe от Intel.
На приведённых ниже графиках сплошные линии соответствуют тесту под управлением CentOS 7.2, длинный пунктир — Windows Server 2012 R2 с драйвером Intel, короткий пунктир — Windows Server 2012 R2 со стандартным драйвером. Данные приведены для одной из половин P3608. Тест проводился с варьированием количества потоков, глубины очереди, размера блоков и соотношения чтение/запись. Данные усреднялись по четырём из 25-ти раундов длительностью 35 секунд (5 «прогревочных» + 30-секундная нагрузка) каждый. Для графиков выбрана серия значений с глубиной очереди от 1 до 128 при четырёх потоках.
На графике средней задержки, как и на остальных можно заметить значительную разницу в производительности на 100% запись и при 30% записи. Производительность под Linux по-прежнему соответствует заявленной, но в Windows мы видим более чем 2-кратное преимущество по 100% записи — больше IOPS при меньших задержках.
99% перцентиль задержки.
99,9% перцентиль задержки. Появляется заметная разница в задержке при 100% чтении блоками 8 КиБ.
99,99% перцентиль задержки.
SNIA PTS: Write Saturation Test (насыщение при случайной записи блоками 4КиБ)
Продолжительность теста составляет 360 минут, так как переход в режим насыщения для большинства SSD происходит не позднее 180-й минуты. Для Intel P3608 тестировались обе половины накопителя, IOPS'ы складывались.
Intel P3608 за счёт своей архитектуры 2-в-1 демонстрирует уверенное преимущество — стоит напомнить, что фактически мы тестируем два Intel P3600. В сравнении со "свежим" накопителем производительность падает в три раза, но всё еще остается на уровне внушительных 160 тыс. IOPS (заявлено 150 тыс.).
На следующем графике представлены задержки — от среднего (в пределах каждого 60-секундного раунда) до максимума, плюс перцентили 99%, 99,9% и 99,99%. Линия максимальной задержки без резких пиков с ростом задержки до сотен миллисекунд свидетельствует от том, что накопитель хорошо справляется с работой в режиме насыщения и отлично подойдёт для тяжелой нагрузки на запись (при условии достаточности ресурса).
SNIA PTS: Host Idle Recovery
Графики для этого теста приведены для одной половины накопителя. Напомним, что данный тест проводится после предыдущего, т.е. накопитель находится в режиме насыщения, с небольшим запасом подготовленных для записи ячеек. Производительность на запись снижена, далее мы даём накопителю возможность восстановить её, прерывая серию из 360 раундов с непрерывной нагрузкой (чёрный цвет на графике) сериями из 360-ти раундов с увеличивающимися паузами:
- 5 секунд нагрузки + 5 секунд паузы
- 5 секунд нагрузки + 10 секунд паузы
- 5 секунд нагрузки + 15 секунд паузы
- 5 секунд нагрузки + 25 секунд паузы
- 5 секунд нагрузки + 50 секунд паузы
Intel P3608 быстро восстанавливает производительность — IOPS' с 80 тыс. даже на первом участке с минимальными паузами восстанавливаются до уровня 200–240 тыс.
![](/images/20160305_Intel_P3608_review/hir_iops.png)
Средняя задержка перестаёт выходить за пределы 1,4 мс.
![](/images/20160305_Intel_P3608_review/hir_lat.png)
Значение 99.9% перцентиля держится в пределах 10 мс.
![](/images/20160305_Intel_P3608_review/HIR_p99d9_lat.png)
Перцентиль 99,99%:
![](/images/20160305_Intel_P3608_review/HIR_p99d99_lat.png)
Пиковые задержки достаточно хорошо контролируются у Intel P3608 даже при непрерывной нагрузке на запись, так что визуально максимумы находятся примерно на одном уровне, не выходя за пределы 25 мс.
![](/images/20160305_Intel_P3608_review/hir_max_lat.png)
Заключение
Intel P3608 — достойный внимания продукт от одного из лидеров рынка NVMe-накопителей. Выдающиеся показатели производительности и достаточный для большинства задач ресурс будут способствовать популярности P3608 до момента появления следующего поколения NVMe SSD от Intel. К сожалению, его сегодняшняя цена[3] в сравнении с P3600 оставляет нам лишь один простой алгоритм выбора — Intel P3608 стоит выбрать только в том случае, если вам нужны объём и/или производительность двух Intel P3600, но не хватает слотов расширения.
Плюсы:
- Высокая производительность. 4,75 ГиБ/с на последовательном чтении на сегодняшний день предложить не может ни один другой накопитель. Аналогичный уровень производительности можно получить, установив два Intel P3600, но они заняли бы два слота расширения.
- Архитектуру «2-в-1» сложно однозначно отнести к плюсам или минусам. С одной стороны — иметь один накопитель большего объёма удобнее. Его всегда можно разделить на несколько частей, разбив на т. н. «пространства имён»[1], а обратный процесс связан с необходимостью строить массив. С другой стороны мы получаем два накопителя, не влияющих друг на друга в плане производительности.
- Проблемы с производительностью в Linux[2] (случайный доступ на запись).
- Отсутствие форм-фактора U.2
- Цена[3]
Примечания
[1] Пространство имён NVMe (англ. NVMe namespace) — область накопителя NVMe, отформатированная для блочного доступа. Пространства имён могут иметь различные размеры сектора или могут использоваться виртуальными машинами через SR-IOV.
[2] Никакого исследования возможных причин пониженной производительности не проводилось. Возможно, данная проблема проявляется только в одном дистрибутиве (CentOS 7.2).
[3] По состоянию на март 2016 года цена одного Intel P3608 существенно превышала цену двух P3600 аналогичного суммарного объёма (например, P3608 1600 ГБ и 2x P3600 800 ГБ или P3608 3200 ГБ и 2x P3600 1600 ГБ).
Ссылки
[1] Scot Strong. Intel Adds PCIe Solutions To Its Data Center Family Of SSDs. The SSD Review.
[2] Intel SSD DC Family for PCIe Brief.
[3] Sean Webster. Intel SSD DC P3608 Review (1.6TB) – Over 5GB/s and 850K IOPS!. The SSD Review.
[4] Intel Solid-State Drive DC P3608 Series Product Specification.
[5] NVMe management command line interface..
[6] Solid State Storage (SSS) Performance Test Specification (PTS).
[7] Intel Solid-State Drive DC P3600 Series Product Specification.