В комментариях к одному из предыдущих постов нас спросили про тесты платформы 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
RAID 5 / 50

LINUX SW
RAID 10 

LINUX SW
RAID 5

Rand Read Performance (IOps / Latency)

11 700 000
0.2 ms

2 700 000
1.7 ms

2 000 000
1.5 ms

Rand Write Performance (IOps / Latency)

2 500 000
0.6 ms

350 000
5.3 ms

150 000
10 ms

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,
latency 0,25 ms

512b Random Reads / 32 drives RAID 5, 512b BS

11 700 000 IOps, 
latency 0,2 ms

4k Random Reads / 16 drives RAID 5

5 380 000 IOps,
latency 0,25 ms

512b Random Reads / 16 drives RAID 5, 512b BS

8 293 000 IOps,
latency 0,2 ms

4k Random Writes / 32 drives RAID 50

2 512 000 IOps,
latency 0,6 ms

512b Random Writes / 32 drives RAID 50, 512b BS

1 644 000 IOps,
latency 0,7 ms

4k Random Writes  / 16 drives RAID 50

1 548 000 IOps,
latency 0,6 ms

512b Random Writes / 16 drives RAID 50, 512b BS

859 000 IOps,
latency 0,7 ms

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% — такое всегда приятно.

Нужно ли всё это вам? Спросите себя (и ещё пару человек на работе). Бывает, что всё устраивает, и тогда пусть будут сервер, форм-фактор и производительность остаются «как есть». Если хочется чего-то посовременнее и побыстрее, то об одной альтернативе вы только что прочитали.

А мы будем писать об интересных тестированиях — в том числе по вашим просьбам — и дальше.