Intel VROC. Производительность

В октябре 2018 ресурс StorageReview разместил обзор Intel VROC (подробнее см. Intel VROC, Intel VROC. Вопросы и ответы) с результатами тестов производительности. Здесь представлен творческий перевод статьи.

Платформа

Тесты проводились на платформе FlacheSAN1N10U-UN компании EchoStreams, рассчитанной на установку до 10шт. 2,5″ накопителей. В тестовой конфигурации установлено 8шт. NVMe SSD в форм-факторе U.2. Для достижения максимальной производительности и выравнивания нагрузки накопители симметрично распределены между двумя VMD на двух процессорах.
Состав тестового сервера: два Intel 8180M, 64GB оперативной памяти, восемь Intel DC P4510 NVMe SSD емкостью 2TB.

Методика тестирования

Тесты проводились для четырех вариантов массивов, сформированных из восьми накопителей:

  • 8 накопителей в JBOD
  • Две группы из 4x SSD в RAID0
  • Две группы из 4x SSD в RAID5
  • Две группы из 4x SSD в RAID10

Когда идет речь о тестирования массивов хранения, лучше всего подходит тестирование приложений, а синтетическое тестирование занимает второе место. Хотя синтетические тесты и не являются идеальным представлением реальных рабочих нагрузок, они помогают определить базовые параметры устройств хранения с хорошей повторяемостью. Синтетически тесты упрощают сравнение конкурирующих решений в одной системе координат (одни и те же «бананы»). Рабочие нагрузки генерируются для различных профилей тестирования, начиная от тестов «четыре угла», обычных тестов передачи базы данных для разных размеров пакетов, а также для отслеживания трассировки из различных сред VDI. Все эти тесты используют общий генератор рабочей нагрузки vdBench с механизмом сценариев для автоматизации и сбора результатов.

В наборе тестов использовались следующие профили:
Короткие блоки, оценка максимального IOPS
4K Random Read: 100% Read, 128 threads,
4K Random Write: 100% Write, 64 threads
Длинные блоки, оценка максимального потока MB/s
64K Sequential Read: 100% Read, 16 threads,
64K Sequential Write: 100% Write, 8 threads
Скорость при эмулировании нагрузки базы данных
Synthetic Database: SQL and Oracle
Скорость загрузки виртуальных машин
VDI Full Clone and Linked Clone Traces

На графиках присутствуют замысловатые кривые с участками с отрицательным наклоном и петлями — это нормально, поскольку параметры взаимосвязаны.

Результаты тестов производительности VROC

Задержка

Первые два слайда показывают задержку в микросекундах для случайного чтения и случайной записи «короткими» блоками 4k в зависимости от нагрузки в IOPS:

Задержка для случайного чтения 4k. Источник: StorageReview
Задержка для случайной записи 4k. Источник: StorageReview

Случайное чтение короткими блоками — самый «комфортный» сценарий использования SSD. Все варианты RAID показали высокую производительность — 2 700 000 IOPS (операций в секунду) и более. Самую маленькую задержку и самую высокую нагрузочную способность при высоких нагрузках показал JBOD — 170мкс при 3 млн IOPS (на 25..30% меньше, чем конкуренты при нагрузке выше 1,7 млн IOPS). Задержки массивов RAID0, 10, 5 сравнимы, не сильно отличаются друг от друга.

На записи коротких блоков различия в производительности проявляются явно.
Победитель в этом тесте — RAID0: порядка 1,8 млн. IOPS при максимальной задержке 1,35мс.
Второе место у JBOD: максимум 700 тыс. IOPS. При приближении к этому значению, резко возросла задержка.
Похожая картина у RAID10, но на значительно более низком уровне — 400 тыс. IOPS.
У RAID5 цифры в пояснительном тексте несколько не соответствуют представленному графику, но это не принципиально меняет картину. Стремительный рост задержки начался на пиковом значении около 22 тыс. IOPS (по графику — около 70 тыс). Объясняется такое сильное отставание скорее алгоритмом RAID5, а не временем, затраченным на расчет контрольных блоков (процессорной мощности более, чем достаточно).

Максимальный поток

Следующие слайды демонстрируют задержку при случайном чтении и случайной записи на больших блоках. Здесь по горизонтали другой показатель — поток в MB/s (так принято для замеров на больших блоках). Фактически, это измеренные IOPS умноженные на размер блока.

Задержка для случайного чтения 64k. Источник: StorageReview
Задержка для случайной записи 64k. Источник: StorageReview

Случайное чтение больших блоков также достаточно комфортная роль SSD массива. На общую производительность начинает влиять тип кристаллов памяти, внутреннее устройство накопителя и оптимальность алгоритмов его контроллера — то есть, внутренняя максимальная скорость накопителя.
Табличных данных нет, а из графика довольно трудно вычленить — какой вариант массива на каком уровне достиг максимума, поскольку они идут «ноздря в ноздрю» и сливаются в одну линию. Можно выделить RAID0 (18GB/s) и особенно JBOD (22GB/s) как наиболее стойкие к нагрузке.

Запись длинными блоками показывает предсказуемо существенное различие в производительности разных массивов.
RAID0 показывает наибольшую максимальную пропускную способность в сочетании с наименьшей задержкой — 124104 IOPS (7,9GB/s) при задержке 1мс.
RAID10 и JBOD «финишировали» на уровне 3,5GB/s.
RAID5 резко и практически линейно увеличивает задержку с ростом нагрузки. Пик — 25 тыс. IOPS (1,6GB/s) при задержке 4,3 мс.

Базы данных

Эмуляция работы с базой данных замеряется в IOPS. Тесты проведены для базы SQL и Oracle для трех профилей нагрузки: 100% чтение, 90% чтение / 10% запись и 80% чтение / 20% запись.

База SQL:
Обратите внимание — графики отличаются масштабом значений по осям! Сделано это для большей наглядности, но может несколько сбить с толку при визуальном сравнении.

Задержка SQL базы данных при 100% чтении в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview
Задержка SQL базы данных при соотношении чтение/запись 90/10 в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview
Задержка SQL базы данных при соотношении чтение/запись 80/20 в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview

При работе с БД SQL задержка для разных вариантов RAID неспешно растет с увеличением нагрузки. При этом, на гладком участке разница между ними практически не различима. Объяснение простое — задержки, вносимые в процесс собственно базой данных превалируют и определяют суммарный ее уровень. При подходе к своему пределу пропускной способности массив резко увеличивает время задержки и именно она начинает играть первую скрипку.

При 100% чтении RAID5 сдается первым на уровне 1,2 млн. IOPS (по тексту — 1,4). JBOD, RAID0 и RAID10 преодолевают 2,1 млн. IOPS. Далее продолжает только RAID0 до 2,5 млн.
Увеличение доли операций записи увеличивает разрыв между испытуемыми и снижает максимальный порог. На тестах 80/20 RAID5 застопоривается на 200 тыс., JBOD и RAID10 — на 1,1 млн., а RAID0 — на 1,7 млн. IOPS.

База Oracle

Графики при работе с БД Oracle немного отличаются, но не принципиально.

Некоторое замешательство вызывает тот факт, что профили 90/10 и 80/20 показывают больший уровень производительности, чем 100/0 и по графикам, и по тексту. Если бы второй график соответствовал профилю 100/0, третий — 90/10, а первый 80/20 — все встало бы на свои места.

Задержка Oracle базы данных при соотношении чтение/запись 100/0 в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview
Задержка Oracle базы данных при соотношении чтение/запись 90/10 в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview
Задержка Oracle базы данных при соотношении чтение/запись 80/20 в мкс. в зависимости от нагрузки (IOPS). Источник StorageReview

VDI

Сервер виртуальных рабочих мест (VDI) — распространенное применение массива SSD наряду с серверами баз данных.
Для оценки производительности VDI эмулируется несколько типичных операций для двух вариантов создания рабочего места — полного клонирования (FC) и связанного (LC):
— загрузка рабочего места (только чтение, ничего не пишем),
— первичная инициализация (Init Login) (чтение, проверка, запись),
— обычный вход (Monday Login, «по понедельникам») (чтение, проверка).

Загрузка. Полный клон.

Задержка при загрузке рабочего места VDI. Полный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD1 314 0754 190
RAID01 400 7652 220
RAID101 217 6202 650
RAID5288 613182

Первичная инициализация. Полный клон.

Задержка при первичном входе рабочего места VDI. Полный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD
RAID0429 6924 980
RAID10
RAID513 296286

Обычный вход. Полный клон.

Задержка при повторном входе рабочего места VDI. Полный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD341 48311 700
RAID0435 6415 670
RAID10234 43112 800
RAID515 000262

Загрузка. Связанный клон.

Задержка при загрузке рабочего места VDI. Связанный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD822 55511 520
RAID0820 9984 390
RAID10782 2244 760
RAID5543 680407

Первичная инициализация. Связанный клон.

Задержка при первичном входе рабочего места VDI. Связанный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD
RAID0276 8147 880
RAID10
RAID510 998312

Обычный вход. Связанный клон.

Задержка при повторном входе рабочего места VDI. Связанный клон. Источник StorageReview
МассивIOPS макс.Задержка, мкс.
JBOD238 00015 800
RAID0279 3328 060
RAID10155 0001 200
RAID511 591315

Полный клон показывает примерно 50% преимущество по нагрузочной способности относительно связанного клона на всех тестах.

Загрузка VDI. Во этом тесте RAID5 показывает большую производительность для связанного клона.

Суммируем. Выводы.

Легко объявить RAID0 «победителем» группы — это вполне ожидаемые результаты, обусловленные принципом работы RAID.
RAID5 имеет существенные потери производительности за счет времени, затрачиваемого на расчет четности, и алгоритма работы, связанного с многократным обращением к накопителям.
RAID10 использует зеркалирование, поэтому потери производительности на защиту данных избыточностью намного ниже. Результаты тестов RAID10 — большой шаг вперед по сравнению с RAID5 по скорости, но за счет большей избыточности по накопителям.
JBOD показывает неплохие результаты, но в реальной практике этот вариант массива не используется.
RAID0 лидирует в цифрах, поскольку он ориентирован исключительно на производительность и использует преимущества за счет чередования данных на накопителях. При этом, в жертву приносится отказоустойчивость данных.

С точки зрения функциональности, тесты подтверждают, что Intel VROC реализован хорошо и обеспечивает согласованные и ожидаемые результаты на хорошо спроектированной платформе.

Источник: обзор Intel VROC на StorageReview

Производительность