В октябре 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:
Случайное чтение короткими блоками — самый «комфортный» сценарий использования 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 умноженные на размер блока.
Случайное чтение больших блоков также достаточно комфортная роль 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 задержка для разных вариантов 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 — все встало бы на свои места.
VDI
Сервер виртуальных рабочих мест (VDI) — распространенное применение массива SSD наряду с серверами баз данных.
Для оценки производительности VDI эмулируется несколько типичных операций для двух вариантов создания рабочего места — полного клонирования (FC) и связанного (LC):
— загрузка рабочего места (только чтение, ничего не пишем),
— первичная инициализация (Init Login) (чтение, проверка, запись),
— обычный вход (Monday Login, «по понедельникам») (чтение, проверка).
Загрузка. Полный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | 1 314 075 | 4 190 |
RAID0 | 1 400 765 | 2 220 |
RAID10 | 1 217 620 | 2 650 |
RAID5 | 288 613 | 182 |
Первичная инициализация. Полный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | ||
RAID0 | 429 692 | 4 980 |
RAID10 | ||
RAID5 | 13 296 | 286 |
Обычный вход. Полный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | 341 483 | 11 700 |
RAID0 | 435 641 | 5 670 |
RAID10 | 234 431 | 12 800 |
RAID5 | 15 000 | 262 |
Загрузка. Связанный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | 822 555 | 11 520 |
RAID0 | 820 998 | 4 390 |
RAID10 | 782 224 | 4 760 |
RAID5 | 543 680 | 407 |
Первичная инициализация. Связанный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | ||
RAID0 | 276 814 | 7 880 |
RAID10 | ||
RAID5 | 10 998 | 312 |
Обычный вход. Связанный клон.
Массив | IOPS макс. | Задержка, мкс. |
JBOD | 238 000 | 15 800 |
RAID0 | 279 332 | 8 060 |
RAID10 | 155 000 | 1 200 |
RAID5 | 11 591 | 315 |
Полный клон показывает примерно 50% преимущество по нагрузочной способности относительно связанного клона на всех тестах.
Загрузка VDI. Во этом тесте RAID5 показывает большую производительность для связанного клона.
Суммируем. Выводы.
Легко объявить RAID0 «победителем» группы — это вполне ожидаемые результаты, обусловленные принципом работы RAID.
RAID5 имеет существенные потери производительности за счет времени, затрачиваемого на расчет четности, и алгоритма работы, связанного с многократным обращением к накопителям.
RAID10 использует зеркалирование, поэтому потери производительности на защиту данных избыточностью намного ниже. Результаты тестов RAID10 — большой шаг вперед по сравнению с RAID5 по скорости, но за счет большей избыточности по накопителям.
JBOD показывает неплохие результаты, но в реальной практике этот вариант массива не используется.
RAID0 лидирует в цифрах, поскольку он ориентирован исключительно на производительность и использует преимущества за счет чередования данных на накопителях. При этом, в жертву приносится отказоустойчивость данных.
С точки зрения функциональности, тесты подтверждают, что Intel VROC реализован хорошо и обеспечивает согласованные и ожидаемые результаты на хорошо спроектированной платформе.
Источник: обзор Intel VROC на StorageReview
Производительность