Ajustando o desempenho do mdadm RAID 5?

Ajustando o desempenho do mdadm RAID 5?

Eu tenho um sistema com dualIntel E5-2620 v3 a 2,40 GHz, 64 GB de RAM, umLSI 3008 HBA, 8xSSD Intel S3510 de 1,6 TB. Tenho feito benchmarking em diferentes configurações usando fio e obtive alguns resultados interessantes. Comparando cada disco bruto individualmente, vejo gravações aleatórias de aproximadamente 450 MB/s por dispositivo. Em um RAID0 (faixa sem paridade) estou vendo~3500MB/sgravações aleatórias - basicamente 450 * 8 discos.

No entanto, quando experimentei o RAID 5, o desempenho caiu completamente. Sei que o raid5 deveria ser significativamente pior que o raid0, mas o desempenho do RAID5 usando o mesmo teste foi cerca de50MB/s. Já usei RAID 5 antes e embora o desempenho nunca tenha sido ótimo, nunca vi uma penalidade de 99% nisso. O teste fio que estou executando tem 600 threads gravando dados aleatórios em blocos de 512 mil. O sistema de arquivos no dispositivo é xfs para todos esses testes.

Definir /sys/block/md0/md/stripe_cache_sizecomo 32768 (o valor máximo possível) aumentou o rendimento geral para~130MB/s, levando-me a supor que o problema é a falta de um cache de write-back como os encontrados em controladores RAID de hardware. Mas estou me perguntando se há algo que eu possa fazer para melhorar o desempenho do mdadm raid 5. Alguma ideia do que poderia estar causando isso ou como melhorar o desempenho do raid 5?

Curiosamente, também tentei um RAID-10 de 16 discos (mesmos discos mais um segundo HBA LSI) e o desempenho foi de aproximadamente 2.400 MB/s - uma redução de 33% em relação ao RAID 0. Considerando como o RAID10 funciona, eu teria esperado o desempenho ser quase idêntico ao RAID 0.

Para quem estiver interessado, 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/

informação relacionada