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

Linux md против производительности LVM

Я пытаюсь настроить свой NAS, запускаю openfiler и задаюсь вопросом, почему у меня относительно низкая скорость чтения с 4 дисков WD RE3 в RAID 5.

РЕДАКТИРОВАТЬ: Обратите внимание, я говорю о скорости чтения с буферизованного диска, а не о скорости кэширования.

РЕДАКТИРОВАТЬ: изменено форматирование, чтобы было ясно, что есть два набора вывода.

Когда я запускаю hdparm на мета-устройстве, я получаю ожидаемый уровень производительности, снижаю громкость и получаю треть скорости!

Кто-нибудь знает, почему? LVM настолько плох?

Декан

Мета-устройство / dev / md0 результаты

[root@nas2 etc]# hdparm -tT /dev/md0
/dev/md0:
 Timing cached reads:   4636 MB in  2.00 seconds = 2318.96 MB/sec
 Timing buffered disk reads:  524 MB in  3.01 seconds = 174.04 MB/sec

Vol group / dev / mapper / vg1-vol1 результаты

[root@nas2 etc]# hdparm -tT /dev/mapper/vg1-vol1
/dev/mapper/vg1-vol1:
 Timing cached reads:   4640 MB in  2.00 seconds = 2320.28 MB/sec
 Timing buffered disk reads:  200 MB in  3.01 seconds =  66.43 MB/sec

Изменить: см. Раздел на странице руководства hdparm, в котором говорится, что это совершенно допустимый тест на производительность последовательного чтения, и это проблема, которую я пытаюсь решить.

 -t     Perform timings of device reads for benchmark and comparison purposes.  For meaningful results, this operation should be repeated 2-3 times on an otherwise
              inactive system (no other active processes) with at least a couple of megabytes of free memory.  This displays the speed  of  reading  through  the  buffer
              cache  to  the  disk  without  any  prior caching of data.  This measurement is an indication of how fast the drive can sustain sequential data reads under
              Linux, without any filesystem overhead.  To ensure accurate measurements, the buffer cache is flushed during the  processing  of  -t  using  the  BLKFLSBUF
              ioctl.   If  the  -T  flag  is also specified, then a correction factor based on the outcome of -T will be incorporated into the result reported for the -t
              operation.

Настройки упреждающего чтения по умолчанию для LVM: действительно пессимистичный. Пытаться blockdev --setra 8192 /dev/vg1/vol1 и посмотрите, до чего это повысит вашу производительность LVM. LVM всегда будет снижать производительность; мы измеряем его на правильно настроенных системах примерно на 10% от производительности базового блочного устройства.

У меня нет хорошего объяснения, но я могу подтвердить результаты.

Тестирование RAID (raid5, 4x1.5TB накопители)

root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2130 MB in  2.00 seconds = 1065.81 MB/sec
 Timing buffered disk reads:  358 MB in  3.00 seconds = 119.15 MB/sec
root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2168 MB in  2.00 seconds = 1084.54 MB/sec
 Timing buffered disk reads:  358 MB in  3.01 seconds = 119.10 MB/sec

тест тома, который использует md2 как физическое устройство.

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2078 MB in  2.00 seconds = 1039.29 MB/sec
 Timing buffered disk reads:  176 MB in  3.03 seconds =  58.04 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2056 MB in  2.00 seconds = 1028.06 MB/sec
 Timing buffered disk reads:  154 MB in  3.03 seconds =  50.81 MB/sec

Я сделал изменение предложил womble и увидел такие результаты.

root@enterprise:# blockdev --setra 8192 /dev/mapper/vg2-data

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2106 MB in  2.00 seconds = 1053.82 MB/sec
 Timing buffered disk reads:  298 MB in  3.00 seconds =  99.26 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2044 MB in  2.00 seconds = 1022.25 MB/sec
 Timing buffered disk reads:  280 MB in  3.03 seconds =  92.45 MB/sec

Убедитесь, что вы сравниваете яблоки с яблоками.

hdparm -t читает с начала устройства, что также является самой быстрой частью вашего диска, если вы отдаете ему целый диск (и на нем вращаются пластины).

Убедитесь, что вы сравниваете его с LV с начала диска.

Чтобы увидеть отображение, используйте pvdisplay -m.

(ладно, конечно, разница в цифрах может быть незначительной. Но подумайте об этом :)

Вы можете выяснить, где hdparm проводит свое время, с помощью blktrace (если он находится в режиме ввода-вывода) или oprofile (если он находится в процессоре). Также поможет знание настройки LVM (pvdisplay, vgdisplay, lvdisplay).

Рабочая нагрузка, созданная с помощью hdparm -T, не является репрезентативной практически для любого случая использования, кроме потокового чтения из одного большого файла. Кроме того, если производительность вызывает беспокойство, не используйте raid5.