Esta sección contiene varias pruebas de evaluación de prestaciones (benchmarks) de un sistema real usando un RAID software.
Las evaluaciones se han realizado con el programa bonnie
y todas
las veces con ficheros dos o más veces más grandes que el tamaño de la RAM
física de la máquina.
Estas evaluaciones sólo miden el ancho de banda de entrada y de
salida sobre un único gran fichero. Esto es algo interesante de saber si
uno está interesado en el máximo rendimiento de E/S para grandes
lecturas/escrituras. Sin embargo, tales números nos dicen poco sobre cuál
sería el rendimiento si el array se usara para un almacén temporal de
noticias, un servidor web, etc. etc. Tenga siempre en cuenta que los
números de las evaluaciones son el resultado de ejecutar un programa
sintético. Pocos programas del mundo real hacen lo que
bonnie
hace y, aunque es interesante mirar estos números de E/S,
no son indicadores en última instancia del rendimiento de los dispositivos
del mundo real.
Por ahora, sólo poseo resultados de mi propia máquina. La configuración es:
Los tres discos U2W cuelgan de la controladora U2W y el disco UW cuelga de la controladora UW.
Parece imposible sacar mucho más de 30 MB/s a través de los buses SCSI de este sistema, usando un RAID o no. Mi suposición es que, debido a que el sistema es bastante antiguo, el ancho de banda de la memoria lo fastidia y, por tanto, limita lo que se puede enviar a través de las controladoras SCSI.
Lectura significa entrada de bloques secuencial y Escritura significa salida de bloques secuencial. El tamaño de fichero fue de 1GB en todas las pruebas. Las pruebas se realizaron en modo monousuario. Se configuró el controlador (driver) SCSI para que no utilizara tagged command queuing, TCQ).
Tamaño de segmento unitario | Tamaño de bloque | Lectura KB/s | Escritura KB/s |
4k | 1k | 19712 | 18035 |
4k | 4k | 34048 | 27061 |
8k | 1k | 19301 | 18091 |
8k | 4k | 33920 | 27118 |
16k | 1k | 19330 | 18179 |
16k | 2k | 28161 | 23682 |
16k | 4k | 33990 | 27229 |
32k | 1k | 19251 | 18194 |
32k | 4k | 34071 | 26976 |
A partir de esto vemos que el tamaño de segmento unitario del RAID no importa mucho. Sin embargo, el tamaño de bloque del sistema de ficheros ext2 debería ser tan grande como fuera posible, lo cual significa 4KB (es decir, el tamaño de página) en una IA-32 (N.T.: arquitectura Intel de 32 bits).
Esta vez, el manejador SCSI se configuró para usar TCQ, con una longitud de cola de 8. Por lo demás, todo es lo mismo de antes.
Tamaño de segmento unitario | Tamaño de bloque | Lectura KB/s | Escritura KB/s |
32k | 4k | 33617 | 27215 |
No se realizaron más pruebas. Activar el TCQ pareció incrementar ligeramente el rendimiento de las escrituras, pero verdaderamente no hubo mucha diferencia en absoluto.
El array se configuró para funcionar en el modo RAID-5 y se hicieron pruebas similares.
Tamaño de segmento unitario | Tamaño de bloque | Lectura KB/s | Escritura KB/s |
8k | 1k | 11090 | 6874 |
8k | 4k | 13474 | 12229 |
32k | 1k | 11442 | 8291 |
32k | 2k | 16089 | 10926 |
32k | 4k | 18724 | 12627 |
Ahora, tanto el tamaño de segmento unitario como el tamaño de bloque parecen realmente significativos.
Un RAID-10 significa bandas duplicadas o un array RAID-1 de dos arrays RAID-0. El tamaño de segmento unitario es tanto el tamaño de las porciones del array RAID-1 como del array RAID-0. No realicé pruebas en las que esos tamaños de segmento unitario fueran diferentes, aunque esa debería ser una configuración perfectamente válida.
Tamaño de segmento unitario | Tamaño de bloque | Lectura KB/s | Escritura KB/s |
32k | 1k | 13753 | 11580 |
32k | 4k | 23432 | 22249 |
No se realizaron más pruebas. El tamaño de fichero fue de 900MB debido a que las cuatro particiones involucradas eran de 500 MB cada una, lo cual no deja espacio para un fichero de 1GB en esta configuración (RAID-1 sobre dos arrays de 1000MB).