Tengo un sistema con dualIntel E5-2620 v3 a 2,40 GHz, 64 GB de RAM, unLSI 3008 HBA, 8xSSD Intel S3510 de 1,6 TB. He estado jugando a pruebas comparativas en diferentes configuraciones usando fio y obtuve algunos resultados interesantes. Al comparar cada disco sin formato individualmente, veo escrituras aleatorias de ~450 MB/s por dispositivo. En un RAID0 (franja sin paridad) estoy viendo~3500 MB/sescrituras aleatorias: básicamente 450 * 8 discos.
Sin embargo, cuando probé RAID 5, el rendimiento se desplomó por completo. Me doy cuenta de que raid5 debería ser significativamente peor que raid0, pero el rendimiento de RAID5 usando la misma prueba fue aproximadamente50 MB/s. He usado RAID 5 antes y, aunque el rendimiento nunca ha sido excelente, nunca he visto una penalización del 99 % por ello. La prueba de fio que estoy ejecutando tiene 600 subprocesos que escriben datos aleatorios en bloques de 512k. El sistema de archivos del dispositivo es xfs para todas estas pruebas.
La configuración /sys/block/md0/md/stripe_cache_size
en 32768 (el valor máximo posible) aumentó el rendimiento general a~130 MB/s, lo que me lleva a suponer que el problema es la falta de una memoria caché de reescritura como las que se encuentran en los controladores RAID de hardware. Pero me pregunto si hay algo que pueda hacer para mejorar el rendimiento de mdadm raid 5. ¿Alguna idea de qué podría estar causando esto o cómo mejorar el rendimiento de Raid 5?
Curiosamente, también probé un RAID-10 de 16 discos (los mismos discos más un segundo HBA LSI) y el rendimiento fue de ~2400 MB/s, una disminución del 33 % con respecto al RAID 0. Dado cómo funciona RAID10, habría esperado el rendimiento. ser casi idéntico a RAID 0.
Para cualquiera interesado, aquí está el archivo de configuración de fio:
[global]
rw=randwrite
direct=1
numjobs=600
group_reporting
bs=512k
runtime=120
ramp_time=5
size=10G
[raid]
new_group
directory=/raid/