Estou observando algo que não posso explicar. Eu estou tentando chegar a uma boa configuração do sistema de arquivos usando o controlador HP P420i e SSDs. Por curiosidade, tentei o BTRFS (ainda instável, então não posso esperar usá-lo) e notei que a velocidade de leitura é de cerca de 150% do ext4 - enquanto a velocidade de gravação é comparável.
Para ser claro, estou usando o RAID0 com dois SSDs com tamanho de faixa de 256Kb. Eu tenho 6 discos, então criei 3 discos lógicos, 2 SSDs cada - apenas para testes. E então eu os tenho formatado com ext4, XFS e BTRFS.
Quando eu escrevo (algo como dd se = / dev / zero de = test2 bs = contagem de 512k = 20000 conv = fdatasync, fsync) e observe o sistema usando iostats, vejo que tanto o BTRFS quanto o EXT4 estão escrevendo aproximadamente mesma taxa com um número semelhante de solicitações de gravação:
(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
Quando leio, observo uma imagem diferente:
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
E isso é o que eu vejo se eu tentar ler o dispositivo de bloco com o 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
Todas as configurações parecem ser idênticas (agendador de E / S, leitura antecipada ...) para todos os 3 volumes lógicos.
Então, como todo o resto é igual, vejo claramente que o btrfs faz muito menos leituras por segundo e lê claramente mais bytes por segundo. E esse número de rrqm / s - esse é o número de solicitações mescladas. Eu só posso vê-lo no dispositivo que está formatado com o btrfs.
Kernel: 3.8.13-35.3.5.el6uek.x86_64 # 2 SMP sex 8 de agosto 21:58:11 PDT 2014 x86_64 x86_64 x86_64 GNU / Linux
intrigado. O que é tão especial que btrfs pode fazer (e ext4 e xfs não fazem) para fazer uma diferença?
P.S. Não, a compactação está desativada com a opção de montagem compress = no