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