У меня есть система с двумяIntel E5-2620 v3 @ 2.40GHz, 64 ГБ оперативной памяти,LSI 3008 HBA, 8xSSD-накопители Intel S3510 емкостью 1,6 ТБ. Я играл в бенчмаркинг в разных конфигурациях с использованием fio и получил некоторые интересные результаты. Тестируя каждый сырой диск по отдельности, я вижу ~450 МБ/с случайной записи на устройство. В RAID0 (полоса без четности) я вижу~3500 МБ/сслучайная запись - в основном 450 * 8 дисков.
Однако, когда я попробовал RAID 5, производительность полностью упала. Я понимаю, что raid5 должен быть значительно хуже, чем raid0, но производительность RAID5 при использовании того же теста была около50 МБ/с. Я уже использовал RAID 5, и хотя производительность никогда не была отличной, я никогда не видел 99%-ного ухудшения. Тест fio, который я запускаю, имеет 600 потоков, записывающих случайные данные в блоки по 512k. Файловая система на устройстве — xfs для всех этих тестов.
Установка /sys/block/md0/md/stripe_cache_size
значения 32768 (максимально возможное значение) увеличила общую пропускную способность до~130 МБ/с, что привело меня к предположению, что проблема в отсутствии кэша обратной записи, как в контроллерах аппаратного RAID. Но мне интересно, можно ли что-то сделать, чтобы улучшить производительность mdadm raid 5. Есть идеи, что может быть причиной этого, или как улучшить производительность raid 5?
Интересно, что я также попробовал 16-дисковый RAID-10 (те же диски плюс второй LSI HBA), и производительность составила ~2400 МБ/с — на 33% меньше, чем у RAID 0. Учитывая, как работает RAID10, я бы ожидал, что производительность будет почти идентична RAID 0.
Для тех, кому интересно, вот файл конфигурации fio:
[global]
rw=randwrite
direct=1
numjobs=600
group_reporting
bs=512k
runtime=120
ramp_time=5
size=10G
[raid]
new_group
directory=/raid/