09/02/07

Rendimiento de software RAID sobre Linux (2)

Continuamos las pruebas, ahora le toca el turno a el RAID10 sobre 4 discos (por si el número par afecta en algo):

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 64797 96 119486 21 48358 12 61408 95 98698 13 430.2 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2734 7 +++++ +++ 2172 4 3093 10 +++++ +++ 1695 5

Rendimiento (E/L): +77% / +34%

Configuración con 4 discos en RAID1+0:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 65864 98 114191 23 42419 11 59552 97 124150 21 495.5 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 3248 12 +++++ +++ 2530 7 3060 13 +++++ +++ 1801 6

Rendimiento (E/L): +69% / +69%

Para los interesados, esta configuración la he construido con estas órdenes:

mdadm --create -n 2 -l 1 /dev/md1 /dev/sdb2 /dev/sdd2 --size 5000000
mdadm --create -n 2 -l 1 /dev/md3 /dev/sdc2 /dev/sda2 --size 5000000
mdadm --create -n 2 -l 0 /dev/md4 /dev/md1 /dev/md3
mkfs.xfs /dev/md4 -f
mount /dev/md4 test


Y ahora una prueba que es la que realmente me ha pasado por la cabeza como candidata, y para la que he realizado las pruebas. Montar RAID1 + LVM con stripping para simular RAID0. Ya que de todas formas voy a utilizar LVM quizás pueda aprovecharlo para obtener un buen rendimiento con una excelente flexilibilidad:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 66600 97 114477 24 44862 15 53496 95 120469 29 397.6 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 4115 24 +++++ +++ 4197 0 5103 28 +++++ +++ 1958 7

Rendimiento (E/L): +69% / +64%

Y finalmente poniendo todos los datos juntos, junto con la eficiencia de disco y el número de discos usados:

  • RAID5(5): +47% / +113% / 80%
  • RAID1(5): -17% / -9% / 20%
  • RAID10(5): +108% / +77% / 50%
  • RAID10(4): +69% / +69% / 50%
  • RAID1+LVM(4): +69% / +64% / 50%

¿Adivináis el que he escogido?

Actualizado (9/2/07): adjunto tabla resumen.

Nivel RAID Discos Escritura Lectura % Espacio % Escritura % Lectura
N/A 1 67512 73633 100 100% 100%
5 5 99400 157120 80 147% 213%
1 5 55983 67411 20 83% 92%
10 5 140498 130574 50 208% 177%
10 4 119486 98698 50 177% 134%
1+0 4 114191 124150 50 169% 169%
1+lvm(0) 4 114477 120469 50 170% 164%

1 comentarios:

  1. Evalua la posibilidad de definir distintos tipos de block-size ( acordes con bloques del RAID y/o LVM para evitar I/O extra ). Tan importante es la velocidad de transferencia del disco como evitar en lo posible 'las vueltas extras de rotación del disco' para reposicionar el cabezal ( ese tiempo invertido no forma parte del tiempo de transferencia y normalmente es 'obviado' por los fabricantes en sus métricas ).
    ResponderSuprimir