У меня есть программный рейд 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 должен обеспечивать лучшую пропускную способность, но без разницы в задержке.
С.