E1.S: микро… Supermicro
В комментариях к одному из предыдущих постов нас спросили про тесты платформы Supermicro на основе дисков форм-фактора E1.S.
К счастью, оказалось, что именно в тот момент у нас была доступна группа серверов в лаборатории в Нидерландах. Так что тесты мы провели и сейчас готовы рассказать, как всё прошло.
Но сперва коротко поясним, что это вообще за диски и для чего они нужны. Начнём от царя Гороха с основ.
Как появился форм-фактор EDSFF
Избавившись от устаревших методов доступа к данным, производители NVMe накопителей взялись и за форм-фактор. Так появился новый стандарт EDSFF, который, по мнению разработчиков Intel, был лучше адаптирован для функционирования в среде ЦОД. EDSFF, который расшифровывается как Enterprise and Data Center SSD Form Factor, а для многих известен под названием Ruler, создавали для решения всего одной задачи: обеспечить минимальную совокупную стоимость хранения на Flash-накопителей в масштабах ЦОД по нехитрому принципу «накопитель занимает меньше места => можно засунуть больше 1PB накопителей в 1 юнит => получаем меньше затрат на выходе».
Но, конечно, есть и показатели, которыми при таком подходе пришлось вынужденно жертвовать — например производительностью на накопитель.
У компании Supermicro есть серверы, которые поддерживают два типа накопителей: «длинный» и «короткий». Эти форм-факторы описаны в спецификациях SNIA:
«короткий» — спецификация SFF-TA-1006;
«длинный» — спецификация SFF-TA-1007.
Кроме непосредственно плотности TB, IOps и GBps, диски из семейства EDSFF позволяют значительно снижать энергопотребление. Intel и Supermicro в своих маркетинговых материалах говорят о десятках процентов по сравнению с U.2.
К сожалению, в своей лаборатории мы это утверждение проверить не можем :)
Как прошли наши тесты
Итак, наши коллеги из Supermicro поставили в голландской лаборатории сервер SSG-1029P-NES32R. Его позиционируют как сервер для работы с базами данных, IOps-интенсивными приложениями и гиперконвергентными инфраструктурами. В его основе лежит материнская плата X11DSF-E с 2 сокетами для установки процессора Intel Xeon Scalable второго поколения — в нашем случае стояла пара процессоров Intel® Xeon® Gold 6252, 8 планок памяти объемом 32GB, DDR4-2933 MHz и 32 накопителя Intel® SSD DC P4511 Series. Платформа, кстати, поддерживает Intel® Optane™ DCPMM.
Для общения с «внешним миром» были следующие интерфейсы:
2 PCI-E 3.0 x16 (FHHL) slots,
1 PCI-E 3.0 x4 (LP) slot.
Стоит заметить, что подобные платформы Supermicro поставляет только в сборе. Как вендор мы их понимаем, но как потенциальный покупатель — не одобряем :)
Остальные технические характеристики перечислять не будем — если что, вся информация доступна на сайте вендора. Лучше уделим чуть больше внимания особенностям тестовой конфигурации и результатам тестирования.
Конфигурации FIO
[global]
filename=/dev/era_dimec
ioengine=libaio
direct=1
group_reporting=1
runtime=900
norandommap
random_generator=tausworthe64
[seq_read]
stonewall
rw=read
bs=1024k
offset_increment=10%
numjobs=8
[seq_write]
stonewall
rw=write
bs=1024k
offset_increment=10%
numjobs=8
[rand_read]
stonewall
rw=randread
bs=4k
numjobs=48
[rand_write]
stonewall
rw=randwrite
bs=4k
numjobs=48
iodepth варьировался с помощью скрипта.
Конфигурация системы
ОС: Ubuntu Server 20.04.3 LTS
Ядро: 5.11.0-34-generic
raidix-era-3.3.1-321-dkms-ubuntu-20.04-kver-5.11
BOOT_IMAGE=/vmlinuz-5.11.0-34-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off
Итак, у нас в системе были установлены 32 накопителя Intel® SSD DC P4511.
Как мы и советовали ранее, начинать нужно с расчёта — а сколько с них можно выжать в теории?
Согласно спецификации, возможности у каждого диска следующие:
максимальная скорость последовательного чтения — 2800 MB/s;
максимальная скорость последовательной записи — 2400 MB/s;
скорость произвольного чтения — 610 200 IOps (4K Blocks).
скорость произвольной записи — 75 000 IOps (4K Blocks).
Но когда мы запустили одновременный тест производительности всех дисков, то вышли на показатель в 9999 тысяч IOps.
Почти 10 миллионов! Хотя ожидаемая производительность должна приблизиться к 20 млн IOps... Мы сразу подумали про необходимость выпрямить руки, но подробное изучение показало, что проблема кроется в переподписке по PCIe-линиям. В такой системе максимум на накопитель можно получить только при половинной загрузке по накопителям:
Уменьшив размер блока до 512b, мы смогли добиться суммарной производительности с дисков в 12 млн IOps на чтение и 5 млн IOps на запись.
Обидно, конечно, терять половину производительности, но 12 млн IOPs на 1U — это более чем достаточно. Вряд ли вы найдете приложение, которое с 2 сокетов обеспечит такую нагрузку на СХД.
Но мы были бы не мы...
если бы не прогнали два теста c RAIDIX на борту :)
RAIDIX ERA мы, как обычно, тестировали в сравнении c mdraid. Вот краткая выжимка результатов на 1U:
Parameter | RAIDIX ERA | LINUX SW | LINUX SW |
Rand Read Performance (IOps / Latency) | 11 700 000 | 2 700 000 | 2 000 000 |
Rand Write Performance (IOps / Latency) | 2 500 000 | 350 000 | 150 000 |
Useful capacity | 224 TB | 128 TB | 250 TB |
Sequential Read Performance | 53 GBps | 56.2 GBPS | 53.1 GBPS |
Sequential Write Performance | 45 GBps | 24.6 GBps | 1.7 GBps |
Sequential Read performance in degraded mode | 42.5 GBps | 42.6 GBps | 1.4 GBps |
Mean CPU load at MAX perf | 13% | 24% | 37% |
Также мы получили результаты для ERA и на различных нагрузках:
Workload / Configuration | Performance |
4k Random Reads / 32 drives RAID 5 | 9 999 000 IOps, |
512b Random Reads / 32 drives RAID 5, 512b BS | 11 700 000 IOps, |
4k Random Reads / 16 drives RAID 5 | 5 380 000 IOps, |
512b Random Reads / 16 drives RAID 5, 512b BS | 8 293 000 IOps, |
4k Random Writes / 32 drives RAID 50 | 2 512 000 IOps, |
512b Random Writes / 32 drives RAID 50, 512b BS | 1 644 000 IOps, |
4k Random Writes / 16 drives RAID 50 | 1 548 000 IOps, |
512b Random Writes / 16 drives RAID 50, 512b BS | 859 000 IOps, |
1024k Sequential Reads / RAID 5, RAID 50 | 53 GBps |
1024k Sequential Writes / RAID 50, ss=64, merges=1, , mm=7000, mw=7000 | 45,6 GBps |
Если интересно, наш метод подготовки системы описан в этой статье. Конечно, все диски готовились к тестам мо методологии SNIA. При запуске нагрузки мы варьировали нагрузку (глубину очереди).
Вы можете спросить — при какой глубине очереди была получена указанная задержка?
Это минимальная задержка при достижении «полки» производительности. В среднем это около 16:
Во время тестов мы столкнулись ещё с одной особенностью платформы (вернее, накопителей от Intel): при низком значении offset_increment эти девайсы начинают просаживаются по производительности, и очень заметно. Похоже, они очень не любят, когда между обращениями по одним и тем же LBA проходит короткое время.
Выводы
Сценарии использования системы на основе платформы SSG-1029P-NES32R, конечно, не безграничны. Причины кроются в достаточно высокой стоимости системы и небольшим количеством слотов PCIe на такую мощность подсистемы хранения.
Зато нам удалось добиться великолепных результатов производительности, что для накопителей E1.S редкость. Мы, конечно, знали, что RAIDIX ERA разгонит IOps, но лишний раз засвидетельствовать преимущество в 5-10 раз на Random, да ещё и при нагрузке на CPU в 13% — такое всегда приятно.
Нужно ли всё это вам? Спросите себя (и ещё пару человек на работе). Бывает, что всё устраивает, и тогда пусть будут сервер, форм-фактор и производительность остаются «как есть». Если хочется чего-то посовременнее и побыстрее, то об одной альтернативе вы только что прочитали.
А мы будем писать об интересных тестированиях — в том числе по вашим просьбам — и дальше.