Esta sección contiene varias pruebas de evaluación de prestaciones (``benchmarks'') de un sistema del mundo 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 manejador SCSI para que no utilizara el encolamiento de órdenes etiquetadas (``tagged command queuing'', TCQ).
Tamaño de porción | 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 porción 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 porción | Tamaño de bloque | Lectura KB/s | Escritura KB/s |
32k | 4k | 33617 | 27215 |
No se realizaron más pruebas. 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 porción | 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 porción 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 porción 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 porción fueran diferentes, aunque esa debería ser una configuración perfectamente válida.
Tamaño de porción | Tamaño de bloque | Lecturas KB/s | Escrituras 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).