Eu tenho um sistema com duas Intel E5-2620 v3 @ 2.40GHz , 64 GB de RAM, um LSI 3008 HBA , 8x 1.6 TB SSDs Intel S3510 . Eu tenho jogado benchmarking em diferentes configurações usando fio e consegui alguns resultados interessantes. Comparando cada disco bruto individualmente, estou vendo gravações aleatórias de ~ 450 MB / s por dispositivo. Em um RAID0 (faixa sem paridade) estou vendo gravações aleatórias ~ 3500 MB / s - basicamente 450 * 8 discos.
No entanto, quando experimentei o RAID 5, o desempenho ficou completamente esgotado. Percebo que o raid5 deve ser significativamente pior que o raid0, mas o desempenho do RAID5 usando o mesmo teste foi de cerca de 50 MB / s . Eu usei o RAID 5 antes e enquanto o desempenho nunca foi ótimo, eu nunca vi uma penalidade de 99% por isso. O teste de fio que estou executando tem 600 threads escrevendo dados aleatórios em blocos de 512k. O sistema de arquivos no dispositivo é o xfs para todos esses testes.
A configuração de /sys/block/md0/md/stripe_cache_size
para 32768 (o valor máximo possível) aumentou o throughput geral para ~ 130 MB / s , levando-me a supor que o problema é a falta de um cache de writeback como os encontrados em controladores RAID de hardware. Mas eu estou querendo saber se há algo que eu possa fazer para melhorar o desempenho do mdadm raid 5. Alguma idéia do que poderia estar causando isso, ou como melhorar o desempenho do RAID 5?
Curiosamente, eu também tentei um RAID-10 de 16 discos (mesmos discos mais um segundo HBA LSI) e o desempenho foi de ~ 2400 MB / s - uma redução de 33% do RAID 0. Dada a forma como o RAID10 funciona, esperava que o desempenho fosse quase idêntico ao RAID 0.
Para qualquer pessoa interessada, aqui está o arquivo de configuração do fio:
[global]
rw=randwrite
direct=1
numjobs=600
group_reporting
bs=512k
runtime=120
ramp_time=5
size=10G
[raid]
new_group
directory=/raid/
Tags performance ssd software-raid