www.team.ru
Поиск
sales@team.ru

Производительность дисковой подсистемы серверов Intel на базе Xeon E5-2600

Серверы Intel нового поколения на базе процессоров Intel Xeon E5-2600 и Intel Xeon E5-2400 (серверная архитектура Romley-EP/EN) обладают рядом серьезных усовершенствований, касающихся дисковой подсистемы:

  1. Перенос контроллера шины PCI Express из чипсета в центральный процессор.
  2. Поддержка нового стандарта шины PCI Express 3.0, имеющего вдвое большую пропускную способность (1GB/s в одну сторону на линию) по сравнению с PCI Express 2.0 (500MB/s).
  3. Новое семейство RAID-контроллеров Intel на базе микропроцессора LSI-2208, который быстрее предыдущего LSI-2108 на 67% при последовательных операциях и на 42% при случайных операциях (по данным Intel).
  4. Увеличение максимального количества дисков в сервере с 12-ти до 24-х.

Мы решили выяснить, насколько хорошо в новых серверах обеспечивается масштабирование дисковой подсистемы, то есть как изменяется ее производительность при увеличении количества дисков? Чтобы ответить на этот вопрос, мы провели тестирование скорости последовательных и случайных операций для различных типов RAID-массивов при разном количестве дисков – от одного до 24-х.

Для тестов мы использовали сервер Team R2000GZ с дисковой подсистемой в составе:

  1. RAID-модуль Intel RMS25CB080. Этот модуль устанавливается в специальный разъем x8 PCIe 3.0 на системной плате сервера, теоретическая пропускная способность интерфейса которого составляет 8GB/s в каждую сторону (8 линий по 1GB/s). Для подключения дисков модуль имеет 8 SAS-портов 6 Гбит/ с суммарной пропускной способностью 4.8GB/s. (На момент тестирования мы располагали сэмплом контроллера с поддержкой PCIe 2.0 (суммарная скорость интерфейса по шине - 4GB/s), что явилось ограничивающим фактором в тестах на последовательных операциях.)
  2. Расширитель SAS-портов Intel RES2CV360 на 36 портов, к входным портам которого мы подключили 8 портов контроллера, а к выходным - 24 жестких диска.
  3. 24 жестких диска Seagate SAS 2,5" Seagate Savvio 10K.5 300GB 6Gb/s 10000RPM 64MB Cache.

Тестирование выполнялось при помощи программы IOmeter с глубиной очереди 256.

Здесь необходимо пояснение. Хотя такая большая глубина очереди является нежелательной в реальных приложениях, поскольку приводит к неприемлемому увеличению среднего времени выполнения запросов, тем не менее она позволяет «выжать» из дисковой подсистемы максимально возможную производительность на операциях случайного доступа благодаря оптимизации очередности выполнения запросов (головки диска перемещаются по наиболее оптимальному «маршруту»). По сравнению с последовательной обработкой запросов (когда глубина очереди равна 1 для каждого диска) это позволяет увеличить производительность почти в три раза (при глубине очереди 64 для одного диска).

Последовательное чтение и запись

Кэш-память дисков и контроллера отключена. Размер блока данных - 256KB, Strip Size - 256KB.

Сначала мы измерили скорость последовательного чтения и записи одного диска. В идеальной дисковой подсистеме при объединении нескольких дисков в массив RAID 0 скорость записи и чтения для массива должна быть равна произведению скорости одного диска на количество дисков в массиве. Производительность такого «идеального» массива показана на диаграммах прямой «Теория».

Затем мы измерили реальную скорость последовательного чтения и записи для массивов RAID 0, RAID 1, RAID 5 и RAID 6 для различного количества дисков в массиве. (Обычно зеркальные массивы из четырех и более дисков называются RAID 10, но мы будем использовать термин RAID 1, поскольку это тоже допустимо.) Результаты тестов приведены на диаграммах.

Массив RAID 0 нормально масштабируется до размера 18 дисков. Дальнейший рост скорости ограничивается, по всей видимости, пропускной способностью контроллера по шине (4 GB/s - сэмпл контроллера, который использовался в тестировании, поддерживает только PCIe 2.0).

График RAID 5 сдвинут относительно «идеальной» прямой на 1 диск, поскольку при чтении приходится пропускать данные четности, суммарный объем которых равен емкости одного диска.

График RAID 6 сдвинут вправо уже на 2 диска, поскольку в нем объем данных контрольных сумм равен емкости двух дисков.

Интересные результаты демонстрирует RAID 1. Казалось бы, он должен вдвое уступать по скорости массиву RAID 0, читая данные только с половины дисков. Однако на самом деле чтение соседних дорожек происходит одновременно с обоих дисков зеркальной пары, то есть на каждом диске чтение происходит «через дорожку». Здесь этот механизм работает благодаря большой глубине очереди и потери в скорости по сравнению с RAID 0 довольно велики – около 15% . На некоторых контроллерах для RAID 1 при последовательном чтении достижима и скорость RAID 0 при включенном кэше контроллера на чтение.

При записи для RAID 0 пропорциональный рост происходит до размера массива в 22 диска. При этом пропускная способность контроллера при записи (3,5GB/s) выше, чем при чтении.

Массивы RAID 5 и RAID 6 хорошо масштабируются до 17-18 дисков, примерно так же, как при чтении. График для RAID 5 сдвинут от идеальной прямой вправо на 1 диск, а график для RAID 6 - на 2 диска, поскольку для записи контрольных сумм используется объем уже двух дисков.

Для RAID 1 скорость записи ровно в два раза меньше RAID 0, поскольку приходится записывать одни и те же данные дважды.

Сравнение массивов RAID 5 и RAID 50

Массив RAID 50 получается из нескольких массивов RAID 5 (спанов), объединенных в RAID 0. В отличие от RAID 5 с одним избыточным диском для четности, RAID 50 имеет диски с четностью для каждого RAID 5 в своем составе.

RAID 50-2 – массив из двух спанов по 3, 5, 7, 9, 10, 11 и 12 дисков в спане
RAID 50-4 – массив из четырех спанов по 3, 4, 5 и 6 дисков в спане
RAID 50-8 – массив из восьми спанов по 3 диска в спане

Массивы RAID 50 с различной организацией демонстрируют одинаковую производительность при одинаковом количестве дисков с данными. Например, RAID 5 из 17 дисков, RAID 50-2 из 18 дисков, RAID 50-4 из 20 дисков и RAID 50-8 из 24 дисков имеют одинаковое количество дисков с данными – 16 и показывают одинаковую скорость чтения – 2575 MB/s.

Здесь картина немного другая. Если при чтении на RAID 50-8 мы читаем только с 18 дисков с данными, игнорируя диски с четностью, то при записи приходится писать на все 24 диска и мы «упираемся» в пропускную способность контроллера.

Сравнение массивов RAID 6 и RAID 60

Массив RAID 60 получается из нескольких массивов RAID 6 (спанов), объединенных в RAID 0. В отличие от RAID 6 с двумя избыточными дисками, RAID 60 имеет по два таких диска для каждого спана.

RAID 60-2 – массив из двух спанов по 4, 6, 8, 10, 11 и 12 дисков
RAID 60-4 – массив из четырех спанов по 4, 5 и 6 дисков
RAID 60-6 – массив из шести спанов по 4 диска

Все массивы демонстрируют одинаковую производительность при одинаковом числе дисков данных. Например, RAID 6 из 14 дисков, RAID 60-2 из 16 дисков, RAID 60-4 из 20 дисков и RAID 60-6 из 24 дисков читают данные с 12 дисков и выдают скорость последовательного чтения 2GB/s.

При записи при общем количестве дисков в массиве 18 и более мы «упираемся» в пропускную способность контроллера, при этом в массивах с большим количеством спанов число дисков с данными меньше, поэтому графики имеют похожую форму.

Случайное чтение и запись

Кэш-память дисков и контроллера отключена. Размер блока данных - 4KB, Strip Size - 256KB.

Скорость случайного чтения или записи измеряются в IOPS – количестве операций ввода-вывода в секунду.

Сначала мы измерили скорость одного диска. Для чтения она составила 393 IOPS (благодаря оптимизации при максимально возможной для одного диска (64) глубине очереди). В теории при объединении нескольких дисков в RAID 0 скорость записи и чтения должна быть равна произведению скорости одного диска на количество дисков в массиве (при условии, что все диски загружены равномерно). Производительность такого «идеального» массива показана на диаграммах прямой «Теория».

Затем мы измерили реальную скорость случайного чтения и записи для массивов RAID 0, RAID 1, RAID 5 и RAID 6 для различного количества дисков в массиве.

Массивы RAID 0, RAID 5 и RAID 6 показывают совершенно одинаковые результаты, поскольку имеют одинаковое количество дисков с данными (данные четности распределены по всем дискам массивов RAID 5 и RAID 6 равномерно). Отклонение от «идеальной» прямой начинается с 5 дисков. До этого на каждый диск приходится в среднем не менее 64 одновременных запроса (256/4) и диски могут выдавать максимальную производительность. При уменьшении глубины очереди, приходящейся на один диск, эффективность оптимизации перемещения головок снижается. Так для массива из 24 дисков на один диск приходится очередь примерно из 10 запросов, а для такой глубины очереди диск может выдать около 250 IOPS, что соответствует 6000 IOPS для массива из 24 дисков.

RAID 1 быстрее остальных, потому что при чтении контроллер имеет выбор между двумя дисками зеркала и может читать с того диска, головки которого расположены ближе к нужному сектору. Возможно и другое объяснение – на один диск приходится вдвое больше одновременных запросов, поэтому движение головок лучше оптимизировано.

При записи лучшую производительность демонстрирует RAID 0. Он немного медленнее на записи, чем на чтении, поскольку процесс позиционирования головок при записи более точный и требует больше времени (максимальная производительность одного диска на запись 327 IOPS, на чтение 393 IOPS). До 4 дисков в массиве график совпадает с идеальной прямой по описанной выше причине.

Производительность RAID 1 выше, чем половина производительности RAID 0 из-за лучшей оптимизации на уровне дисков (больше одновременных запросов, приходящихся на один диск).

RAID 5 и RAID 6 показывают одинаковую скорость, которая равна скорости одного диска. Этот «ненормальный» результат объясняется тем, что при тестировании был отключен кэш контроллера, вследствие чего контроллер не мог оптимизировать выполнение операций чтения и записи (чтение на операциях записи необходимо для вычисления четности). С включенным кэшем производительность RAID 5 из 24 дисков должна примерно соответствовать производительности RAID 0 из 6 дисков (одна запись в RAID 5 – это чтение блока данных и блока четности с двух дисков, а затем запись блока данных и блока четности на эти два диска, штраф на запись - 4), а производительность RAID 6 – производительности RAID 0 из четырех дисков (соответственно, чтение трех блоков с разных дисков, а затем запись на них же, штраф на запись -6).

Сравнение массивов RAID 5 и RAID 50

При случайном чтении массивы RAID 5 и RAID 50 теоретически должны показывать одинаковую производительность, поскольку данные четности распределены равномерно по всем дискам массива и количество дисков, участвующих в операциях чтения, не зависит от количества спанов. Результаты теста это подтверждают, за единственным исключением – массив RAID 50 из 16 дисков (четыре спана по 4 диска) показывает такое же быстродействие, как RAID 50 из 12 дисков (четыре спана по 3 диска). Это отклонение, видимо, связано с особенностями логики работы данного контроллера.

RAID 50-2 – массив из двух спанов по 3, 5, 7, 9, 10, 11 и 12 дисков в спане
RAID 50-4 – массив из четырех спанов по 3, 4, 5 и 6 дисков в спане
RAID 50-8 – массив из восьми спанов по 3 диска в спане

Сравнение массивов RAID 6 и RAID 60

Как и массивы RAID 5 и RAID 50, массивы RAID 6 и RAID 60 при одинаковом общем количестве дисков на операциях случайного чтения должны показывать одинаковую производительность. Однако и здесь мы получили один результат, выбивающийся из общего ряда – RAID 60 из четырех спанов по 4 диска.

RAID 60-2 – массив из двух спанов по 4, 6, 8, 10, 11 и 12 дисков в спане
RAID 60-4 – массив из четырех спанов по 4, 5 и 6 дисков в спане
RAID 60-6 – массив из шести спанов по 4 диска в спане

Выводы

Основываясь на результатах выполненных тестов можно утверждать, что дисковая система сервера нормально масштабируется на операциях последовательного чтения и записи на всех типах RAID-массивов до 18 дисков в массиве. При большем количестве дисков рост производительности замедляется из-за ограничений пропускной способности RAID-контроллера по шине (тестовый сэмпл контроллера поддерживал только PCIe 2.0 с максимальной пропускной способностью 4 GB/s). Возможно, это ограничение будет устранено в серийной версии контроллера.

На операциях случайного чтения и записи дисковая подсистема хорошо масштабируется вплоть до максимально возможного количества дисков (24).

 

тестирование Андрей Леонтьев
21.08.2012