Sistemas de arquivos intuitivamente Copy-on-Write e Log estruturados podem oferecer melhor desempenho em discos shingles, reduzindo a redução de gravações aleatórias. Os benchmarks suportam isso, no entanto, essas diferenças no desempenho não são específicas dos discos shingled. Eles também ocorrem em um disco não selecionado usado como controle. Assim, a mudança para um disco shingled pode não ter muita relevância para a escolha do sistema de arquivos.
O sistema de arquivos nilfs2 deu um bom desempenho no disco SMR. No entanto, isso foi porque eu aloquei toda a partição 8TB, e o benchmark só escreveu ~ 0.5TB para que o limpador nilfs não precisasse rodar. Quando limitei a partição a 200GB, os benchmarks do nilfs nem sequer foram concluídos com sucesso. Nilfs2 pode ser uma boa escolha em termos de desempenho se você realmente usar o disco "archive" como um disco de arquivamento onde você mantém todos os dados e instantâneos gravados no disco para sempre, então o nilfs cleaner não precisa ser executado.
Eu entendo que a unidade 8TB seagate ST8000AS0002-1NA17Z
que usei para o teste tem uma área de cache ~ 20GB . Eu alterei as configurações padrão do fileserver filebench para que o conjunto de benchmarks fosse ~ 125GB, maior que a área de cache não-dimensionada:
set $meanfilesize=1310720
set $nfiles=100000
run 36000
Agora, para os dados reais. O número de ops mede o desempenho "geral" do servidor de arquivos, enquanto o ms / op mede a latência do acréscimo aleatório e pode ser usado como um guia aproximado para o desempenho de gravações aleatórias.
$ grep rand *0.out | sed s/.0.out:/\ / |sed 's/ - /-/g' | column -t
SMR8TB.nilfs appendfilerand1 292176ops 8ops/s 0.1mb/s 1575.7ms/op 95884us/op-cpu [0ms - 7169ms]
SMR.btrfs appendfilerand1 214418ops 6ops/s 0.0mb/s 1780.7ms/op 47361us/op-cpu [0ms-20242ms]
SMR.ext4 appendfilerand1 172668ops 5ops/s 0.0mb/s 1328.6ms/op 25836us/op-cpu [0ms-31373ms]
SMR.xfs appendfilerand1 149254ops 4ops/s 0.0mb/s 669.9ms/op 19367us/op-cpu [0ms-19994ms]
Toshiba.btrfs appendfilerand1 634755ops 18ops/s 0.1mb/s 652.5ms/op 62758us/op-cpu [0ms-5219ms]
Toshiba.ext4 appendfilerand1 466044ops 13ops/s 0.1mb/s 270.6ms/op 23689us/op-cpu [0ms-4239ms]
Toshiba.xfs appendfilerand1 368670ops 10ops/s 0.1mb/s 195.6ms/op 19084us/op-cpu [0ms-2994ms]
Como a Seagate tem 5980RPM, pode-se esperar ingenuamente que a Toshiba seja 20% mais rápida. Esses benchmarks mostram que ele é aproximadamente 3 vezes (200%) mais rápido, então esses benchmarks estão atingindo a penalidade de desempenho. Vemos que o disco Shingled (SMR) ainda não consegue igualar o desempenho do ext4 em um disco não-agrupado (PMR). O melhor desempenho foi com o nilfs2 com uma partição de 8TB (então o limpador não precisou ser executado), mas mesmo assim foi significativamente mais lento que o Toshiba com o ext4.
Para tornar os benchmarks acima mais claros, pode ser útil normalizá-los em relação ao desempenho do ext4 em cada disco:
ops randappend
SMR.btrfs: 1.24 0.74
SMR.ext4: 1 1
SMR.xfs: 0.86 1.98
Toshiba.btrfs: 1.36 0.41
Toshiba.ext4: 1 1
Toshiba.xfs: 0.79 1.38
Vemos que no disco SMR o btrfs tem a maior vantagem em ops gerais que ele tem no ext4, mas a penalidade nos acréscimos aleatórios não é tão dramática quanto uma proporção. Isso pode levar alguém a mudar para o btrfs no disco SMR. Por outro lado, se você precisar de anexos aleatórios de baixa latência, este benchmark sugere que você deseja o xfs, especialmente no SMR. Vemos que, embora o SMR / PMR possa influenciar sua escolha do sistema de arquivos, considerando a carga de trabalho que você está otimizando, parece mais importante.
Eu também executei um benchmark baseado no sótão. As durações das corridas do sótão (nas partições de disco cheio de 8TB SMR) foram:
ext4: 1 days 1 hours 19 minutes 54.69 seconds
btrfs: 1 days 40 minutes 8.93 seconds
nilfs: 22 hours 12 minutes 26.89 seconds
Em cada caso, os repositórios do attic tinham as seguintes estatísticas:
Original size Compressed size Deduplicated size
This archive: 1.00 TB 639.69 GB 515.84 GB
All archives: 901.92 GB 639.69 GB 515.84 GB
A adição de uma segunda cópia do mesmo disco de 1 TB ao sótão levou 4,5 horas em cada um desses três sistemas de arquivos. Um dump bruto dos benchmarks e smartctl
information está em:
link
link