Назад | Перейти на главную страницу

RAID1 - зеркало mdadm - не выполняет параллельное чтение, как ожидалось?

У нас есть трехстороннее зеркало RAID 1, работающее от mdadm. Думаю, я читал, что mdadm должен принимать несколько одновременных запросов на чтение и распределять их по разным дискам в зеркале (распараллеливать чтение), чтобы улучшить производительность чтения, но в нашем тестировании и просмотре вывода iostat -xm 1, похоже, что используется только / dev / sda, хотя ввод-вывод для этого устройства насыщается с 5 разных устройств MD.

Я что-то не понимаю? Нужно ли настраивать mdadm по-другому? Наша версия (CentOS 6.7) не поддерживает это? Не знаю, почему он так себя ведет.

Настройка бенчмарка - одновременно выполните следующие команды:

dd if=/dev/md2 bs=1048576 of=/dev/null count=25000
dd if=/dev/md3 bs=1048576 of=/dev/null count=25000
dd if=/dev/md4 bs=1048576 of=/dev/null count=25000
dd if=/dev/md5 bs=1048576 of=/dev/null count=25000
dd if=/dev/md6 bs=1048576 of=/dev/null count=25000

Пока они собираются смотреть выход iostat -xm 1 (пример вывода приведен ниже - зеркало состоит из sda, sdb и sdc).

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda           100669.00     0.00 10710.00    0.00   435.01     0.00    83.18    33.28    3.11   0.09 100.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md1               0.00     0.00 19872.00    0.00    77.62     0.00     8.00     0.00    0.00   0.00   0.00
md2               0.00     0.00 18272.00    0.00    71.38     0.00     8.00     0.00    0.00   0.00   0.00
md5               0.00     0.00 18272.00    0.00    71.38     0.00     8.00     0.00    0.00   0.00   0.00
md7               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md6               0.00     0.00 18240.00    0.00    71.25     0.00     8.00     0.00    0.00   0.00   0.00
md4               0.00     0.00 18208.00    0.00    71.12     0.00     8.00     0.00    0.00   0.00   0.00
md3               0.00     0.00 18528.00    0.00    72.38     0.00     8.00     0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Выполните тест еще раз, но измените его так, чтобы все пять операций чтения выполнялись на одном и том же MD-устройстве (например, / dev / md2), и вы должны увидеть, как они распространяются.

Одна операция чтения будет читать только с одного диска в зеркале. Он начнется с первого диска, назначенного зеркалу, который в данном случае выглядит как / dev / sda. Поскольку у вас настроено более 5 устройств MD и выполняется одна операция чтения с каждого устройства, все они извлекаются из / dev / sda.

Я бы рекомендовал отказаться от настройки нескольких MD-устройств и просто использовать одно устройство, охватывающее весь SSD.

В качестве альтернативы можно изменить метод тестирования, чтобы заставить его работать с несколькими разными дисками. Взгляни на Бонни ++, это довольно стильно.