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

медленный программный рейд

У меня есть программный рейд 1 для / и / home, и, похоже, я не получаю от него нужную скорость.

При чтении с md0 я получаю около 100 МБ / с. При чтении с sda или sdb я получаю около 95-105 МБ / с.

Думал, что с двух дисков получу больше скорости (при чтении данных). Не знаю, в чем проблема.

Я использую ядро ​​2.6.31-18

hdparm -tT / dev / md0

/ dev / md0: Время чтения из кеша: 2078 МБ за 2,00 секунды = 1039,72 МБ / с Считывание из буферизованного диска по времени: 304 МБ за 3,01 секунды = 100,96 МБ / с

hdparm -tT / dev / sda

/ dev / sda: Время чтения из кеша: 2084 МБ за 2,00 секунды = 1041,93 МБ / с Считывание с диска с временным буфером: 316 МБ за 3,02 секунды = 104,77 МБ / с

hdparm -tT / dev / sdb

/ dev / sdb: Время чтения из кеша: 2150 МБ за 2,00 секунды = 1075,94 МБ / с Считывание из буферизованного диска: 302 МБ за 3,01 секунды = 100,47 МБ / с

Изменить: Рейд 1

Взгляните на следующую статью на nixCraf, Как: ускорить создание и повторную синхронизацию программного обеспечения Linux.

В нем объясняются различные настройки в / proc, которые можно изменить, чтобы повлиять на скорость программного рейда. (Не только во время сборки / синхронизации, как следует из названия.)

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

Чтение одного большого файла никогда не будет быстрее с RAID 1.

Чтобы получить такой же уровень избыточности с ожидаемым выигрышем в скорости, вам необходимо использовать RAID 10 с «удаленной» компоновкой. Это удаляет данные и отображает их на двух дисках. Каждый диск разделен на сегменты. С двумя сегментами полосы на диске 1, сегмент 1 копируются на диск 2, сегмент 2. Диск 1, сегмент 2 копируется на диск 2, сегмент 1. Детальное объяснение.

Как вы можете видеть на этих ориентиры RAID 10, f2 получает скорость чтения, аналогичную RAID 0:

   RAID type      sequential read     random read    sequential write   random write
   Ordinary disk       82                 34                 67                56
   RAID0              155                 80                 97                80
   RAID1               80                 35                 72                55
   RAID10,n2           79                 56                 69                48
   RAID10,f2          150                 79                 70                55

f2 просто означает дальний план с 2 сегментами.

Кроме того, в моих личных тестах я обнаружил, что производительность записи снижается. Обратите внимание, что приведенные выше тесты предполагают, что с RAID10, f2 скорость записи должна быть почти эквивалентна скорости записи одного диска. Я обнаружил, что скорость снизилась почти на 30%. После долгих экспериментов я обнаружил, что изменение планировщика ввода-вывода с cfq на крайний срок исправил проблему.

echo deadline > /sys/block/md0/queue/scheduler

Вот еще немного информации: http://www.cyberciti.biz/faq/linux-change-io-scheduler-for-harddisk/

При такой настройке вы сможете получать последовательные чтения со скоростью около 185-190 МБ / с.

Что за RAID?

Любая комбинация 0 и 1 не даст значительного улучшения непараллельных тестов для задержки или пропускной способности. RAID 3/5 должен обеспечивать лучшую пропускную способность, но без разницы в задержке.

С.