Улучшение скорости записи mdadm RAID-6

8

У меня есть домашний сервер mdadm RAID-6 с жесткими дисками WD Green 5x1Tb. Скорость чтения более чем достаточно - 268 Мб / с в дд. Но скорость записи всего 37,1 Мб / с. (Оба протестированы с помощью dd для файла 48 ГБ, объем оперативной памяти составляет 1 ГБ, размер блока, использованного в тестировании, составляет 8 КБ)

Не могли бы вы подсказать, почему скорость записи такая низкая и есть ли способы ее улучшить? Загрузка ЦП во время записи составляет всего 25% (т.е. половина от 1 ядра Opteron 165). Никаких важных для бизнеса данных нет, а сервер поддерживается ИБП.

mdstat это:

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
      2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Какие-либо предложения?

Такие вещи, как обратная связь, барьер, ничто не помогло. Размер блока DD = 1M, 8M ничего не изменило. Похоже, что mdadm физически читает сектора для вычисления четности, даже если это не имеет значения ... Это правильно?

Обновление: Ухудшение скорости после изменения кэша чередующихся полос было на самом деле из-за того, что 1 жесткий диск, вероятно, вышел из строя во время тестирования

Решено: после увеличения полосового кэша и переключения на внешнее растровое изображение мои скорости записи 160 Мбит / с, чтения 260 Мбит / с. :-D

BarsMonster
источник
Привет, бары. Что ты подправил, и после каких изменений производительность упала до 120 Мбит / с? У меня похожая проблема, но моя производительность намного хуже :( Любые предложения будут полезны! Спасибо!
В моем случае у меня был сбой диска в середине оптимизации :-)
BarsMonster

Ответы:

9

Вы пробовали настроить / sys / block / mdX / md / stripe_cache_size?

Согласно этому сообщению на форуме (на норвежском языке, извините) «настройка этого параметра тем важнее, чем больше дисков и тем быстрее ваша система»:

В моей системе я получаю наилучшую производительность, используя значение 8192. Если я использую значение по умолчанию 256, производительность записи падает на 66%.

Приведем его скорость для сравнения:

Диски: 8xSeagate 2TB LP (5900 об / мин) в mdadm RAID6 (-n 512) (stripe_size_cache = 8192).

Процессор: Intel X3430 (4x2,4 ГГц, 8 ГБ памяти DDR3 ECC)

Скорость: 387 МБ / с последовательной записи, 704 МБ / с последовательного чтения, 669 случайных операций поиска в секунду.

Мой домашний сервер имеет почти те же диски, что и вы, используя RAID 5:

Диски: 4x1,5 ТБ WD Green в RAID 5 (stripe_size_cache = 256 - по умолчанию)

Процессор: Intel i7 920 (2,66 ГГц, 6 ГБ ОЗУ)

Скорость: 60 МБ / с последовательной записи, 138 МБ / с последовательной записи (согласно Бонни ++)

Таким образом, похоже, что производительность последовательной записи составляет около 50% производительности чтения.

В отношении ожидаемой производительности Linux Raid Wiki говорит о RAID 5:

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

А насчет RAID 6:

Производительность чтения аналогична RAID-5, но производительность записи хуже.

JG-Фауст
источник
Скорость записи упала до 15-20 Мб / с, скорость чтения снизилась до 110: -S Это просто не имеет
смысла
Попробуйте другие значения, посмотрите, что получится. Не эксперт в этом, но у меня есть WD Greens (4x1.5TB) в md RAID 5 с той же проблемой - довольно медленная скорость записи. Моя система в данный момент не работает, но я тоже поэкспериментирую и обновлю здесь, если мне удастся ее улучшить.
jg-faustus
Кстати: у вас включен AHCI? Какая файловая система - ext3, ext4?
jg-faustus
Не уверен насчет AHCI, очень сложно взглянуть на BIOS. ext4.
BarsMonster
Черт, застрявший со скоростью чтения 120 Мбит / с, не могу вернуться к моим 268 :-( Это так расстраивает ... Я не понимаю, почему mdadm не может читать или записывать данные линейно со скоростью ~ 3x90 Мбит / с. .. Это просто глупо.
BarsMonster
4

пытаться

echo 32768 > /sys/block/md0/md/stripe_cache_size

и проверить;)

DM1
источник
В предыдущем ответе мы тестировали разные stripe_cache_sizes. Установка его на 32768 ничего не улучшила. Я все еще на ~ 100 Мб / с пишет даже после обновления (процессор E8500, оперативная память 8 Гб и массив 8x1 Тб)
BarsMonster
ABSURD! Это сразу увеличило мою производительность записи с ~ 70 МБ / с до ~ 360 МБ / с!?! Боже мой. WTF это не по умолчанию?!?
stolsvik
О мое слово Это действительно работает ... От [================> ....] восстановления = 82,1% (1604609136/1953382144) финиш = 122,7 мин. Скорость = 47348 К / с до [ ================> ....] восстановление = 82,3% (1607712880/1953382144) финиш = скорость 56,2 мин = 102451 К / сек
Lmwangi
В моем тестировании значение 8192 кажется достаточным. Несмотря на то, что все массивы, с которыми мне приходилось тестировать, были выброшены, я не смог добиться, чтобы stripe_cache_active поднялся выше, чем низкие 7000.
Джоди Ли Брухон