1

Я наблюдаю то, что не могу объяснить. Я пытаюсь найти хорошую конфигурацию файловой системы, используя контроллер HP P420i и твердотельные накопители. Из любопытства я попробовал BTRFS (все еще нестабильный, так что не могу ожидать, что смогу его использовать) и заметил, что скорость чтения составляет около 150% от ext4 - тогда как скорость записи сопоставима.

Чтобы было ясно, я использую RAID0 с двумя твердотельными накопителями с размером полосы 256Кб. У меня есть 6 дисков, поэтому я создал 3 логических диска, по 2 SSD на каждом - только для тестирования. И тогда я отформатировал их с ext4, XFS и BTRFS.

Когда я пишу (что-то вроде dd if =/dev/zero of = test2 bs = 512k count = 20000 conv = fdatasync, fsync) и наблюдаю за системой с помощью iostats, я вижу, что и BTRFS, и EXT4 пишут примерно с одинаковой скоростью с аналогичное количество запросов на запись:

(ext4  - writing)
Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0.00     0.00    0.00 1791.00     0.00   895.00  1023.43   141.73   78.97   0.56 100.00
(btrfs - writing)
Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0.00     0.00    0.00 1786.00     0.00   893.00  1024.00   137.87   77.21   0.56 100.10

Когда я читаю, я наблюдаю другую картину:

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
(ext4 - reading)
sdb               0.00     0.00 4782.00    0.00   597.75     0.00   256.00     1.57    0.33   0.18  84.10
(btrfs - reading)
Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc             207.00     0.00 1794.00    0.00   886.40     0.00  1011.90    10.59    5.90   0.56 100.00
(xfs - reading)
Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sdd               0.00     0.00 4623.00    0.00   577.88     0.00   256.00     1.71    0.37   0.21  97.00

И это то, что я вижу, если я просто пытаюсь прочитать блочное устройство с помощью dd:

(reading block device)
Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb           132055.00     0.00 4259.00    0.00   532.38     0.00   256.00     1.61    0.38   0.23  99.80
sdc           131750.00     0.00 4250.00    0.00   531.25     0.00   256.00     1.58    0.37   0.24 100.00
sdc           142476.00     0.00 4596.00    0.00   574.50     0.00   256.00     1.61    0.35   0.20  92.40

Все настройки кажутся идентичными (планировщик ввода / вывода, чтение ...) для всех 3 логических томов.

Итак, при прочих равных условиях я ясно вижу, что btrfs выполняет намного меньше операций чтения в секунду и четко читает больше байтов в секунду. И это число rrqm/s - это количество объединенных запросов. Я могу видеть это только на устройстве, отформатированном с помощью btrfs.

Ядро: 3.8.13-35.3.5.el6uek.x86_64 # 2 SMP пт 8 августа 21:58:11 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux

Озадаченный. Что особенные btrfs могут делать (а ext4 и xfs не делают), чтобы добиться такой разницы?

PS Нет, сжатие отключено с опцией монтирования compress = no

1 ответ1

1

BTRFS широко использует кеширование памяти, что, вероятно, является причиной такого поведения. Я наблюдал скорость чтения до 8 ГБ / с в моей системе Xeon E3-1220, что примерно соответствует ожидаемой конфигурации моей текущей памяти. Обратите внимание, что реальное оборудование - это 2 диска по 1,5 ТБ и 2 диска по 1 ТБ с файлом подкачки на SSD (это также имеет значение).

[root@Helium ~]# dd if=/storage/btrfs-raid10/isos/ubcd533.iso.1 of=/dev/null bs=1M
592+1 records in
592+1 records out
621176832 bytes (621 MB) copied, 0.0770955 s, 8.1 GB/s

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .