У меня система с двойным Intel E5-2620 v3 @ 2,40 ГГц, ОЗУ 64 ГБ, LSI 3008 HBA, 8x Твердотельные накопители Intel S3510 1,6 ТБ. Я тестировал его в разных конфигурациях с помощью fio и получил некоторые интересные результаты. Сравнивая каждый необработанный диск индивидуально, я вижу ~ 450 МБ / с произвольной записи на устройство. В RAID0 (полоса без четности) я вижу ~ 3500 МБ / с произвольная запись - в основном 450 * 8 дисков.
Однако, когда я попробовал RAID 5, производительность полностью упала. Я понимаю, что raid5 должен быть значительно хуже, чем raid0, но производительность RAID5 с использованием того же теста была примерно 50 МБ / с. Раньше я использовал RAID 5, и хотя производительность никогда не была отличной, я никогда не видел потери в 99%. В тесте fio, который я выполняю, 600 потоков записывают случайные данные блоками по 512 КБ. Для всех этих тестов файловая система на устройстве - xfs.
Настройка /sys/block/md0/md/stripe_cache_size
до 32768 (максимально возможное значение) увеличила общую пропускную способность до ~ 130 МБ / с, что заставляет меня предположить, что проблема заключается в отсутствии кеша с обратной записью, подобного тем, что есть в аппаратных RAID-контроллерах. Но мне интересно, могу ли я что-нибудь сделать, чтобы улучшить производительность mdadm raid 5. Есть идеи, что может быть причиной этого или как улучшить производительность рейда 5?
Интересно, что я также попробовал RAID-10 с 16 дисками (те же диски плюс второй HBA-адаптер LSI), и производительность составила ~ 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/