Velocidad de lectura / escritura SSD (Intel 530) muy lenta con RAID 10

11

Explicación:

Tenemos un servidor:

  • Modelo: HP ProLiant DL160 G6
  • 4 x SSD de 240 GB (RAID-10)
  • 72 GB de RAM DDR3
  • 2 x L5639
  • Controlador RAID HP P410 (256 MB, V6.40, versión Rom: 8.40.41.00)

Las unidades SSD son 4 nuevas Intel 530 de 2.5 "con 540MB / s de velocidad de lectura y 490MB / s de velocidad de escritura

  • CentOS 6
  • Los sistemas de archivos son ext4

pero este es el resultado de la prueba de velocidad de lectura en la incursión 10:

hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  824 MB in  3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root

/dev/mapper/vg_localhost-lv_root:
 Timing buffered disk reads:  800 MB in  3.01 seconds = 266.19 MB/sec

y esto es para la velocidad de escritura:

dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s

esperábamos una velocidad de lectura de 1GB con raid 10, ¡pero 270MB ni siquiera es la velocidad de un solo disco!

Preguntas:

  1. ¿Por qué es tan lento?
  2. ¿Es por el controlador RAID?

Actualización 1 - Misma velocidad de lectura / escritura:

Después de cambiar algunas configuraciones como se menciona en las respuestas, tengo el resultado a continuación:

(¿Alguien sabe por qué muestra 4 GB en lugar de 400 MB como velocidad de lectura?)

EDITAR: parece que el comando estaba equivocado y deberíamos haber usado -s144g para esta cantidad de ram, es por eso que muestra 4GB (como se sugiere en los comentarios de ewwhite)

[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.408 $
                Compiled for 64 bit mode.
                Build: linux

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  135331.80 KB/sec
        Children see throughput for  1 rewriters        =  124085.66 KB/sec
        Children see throughput for  1 readers          = 4732046.50 KB/sec
        Children see throughput for 1 re-readers        = 4741508.00 KB/sec
        Children see throughput for 1 random readers    = 4590884.50 KB/sec
        Children see throughput for 1 random writers    =  124082.41 KB/sec

pero el viejo hdparm -t /dev/sdacomando todavía muestra:

Lecturas de disco almacenadas temporalmente: 810 MB en 3.00 segundos = 269.85 MB / seg.

Actualización 2 (paquete tuned-utils): la velocidad de lectura ahora es de 600 MB / s:

Finalmente algo de esperanza, habíamos deshabilitado la memoria caché del controlador RAID e hicimos otras cosas antes sin suerte, pero debido a que volvimos a cargar el servidor e instalamos el sistema operativo, olvidamos instalar "tuned-utils" como se sugiere en la respuesta de ewwhite (Gracias ewwhite para este paquete increíble que sugirió)

Después de instalar tuned-utilsy elegir el enterprise-storageperfil, la velocidad de lectura ahora es ~ 600 MB / s + pero la velocidad de escritura sigue siendo muy lenta (~ 160 MB) (:

Aquí está el resultado para el iozone -t1 -i0 -i1 -i2 -r1m -s144gcomando:

    Children see throughput for  1 initial writers  =  165331.80 KB/sec
    Children see throughput for  1 rewriters        =  115734.91 KB/sec
    Children see throughput for  1 readers          =  719323.81 KB/sec
    Children see throughput for 1 re-readers        =  732008.56 KB/sec
    Children see throughput for 1 random readers    =  549284.69 KB/sec
    Children see throughput for 1 random writers    =  116389.76 KB/sec

Incluso con hdparm -t /dev/sdacomando tenemos:

Lecturas de disco almacenadas temporalmente: 1802 MB en 3.00 segundos = 600.37 MB / seg.

¿Alguna sugerencia para la velocidad de escritura muy lenta?

Actualización 3 - Alguna información solicitada en los comentarios:

La velocidad de escritura sigue siendo muy baja (~ 150 MB / s, que ni siquiera es 1/3 de un solo disco)

Salida para df -hy fdisk -l:

[root@192 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       441G  3.2G  415G   1% /
tmpfs            36G     0   36G   0% /dev/shm


[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       58363   468795392   83  Linux
Ara
fuente
Para esta prueba, probablemente debería especificar el doble de la cantidad de RAM instalada en el servidor.
ewwhite
¿Puede decirnos la versión de firmware de su controlador Smart Array P410?
ewwhite
@ewwhite gracias por tu comentario, la versión de firmware es p410 (256MB, V6.40) y la versión de rom es 8.40.41.00, ¿fue incorrecto mi comando iozone? En caso afirmativo, ¿podría decirme el comando correcto para probar? porque todo lo que intento obtengo la velocidad de lectura en GB
Ara
algo esta muy mal aqui. Solo obtienes ~ 122 MB / s de escritura. Las cifras de 4 GB / s que ve son operaciones de la memoria caché, por lo que su cadena de comando debería verse así iozone -t1 -i0 -i1 -i2 -r1m -s144g. :(
ewwhite
@ewwhite Muchas gracias, la velocidad de lectura ahora es muy buena (detallada como la actualización 2 en mi pregunta), pero la velocidad de escritura es muy decepcionante, ¿tiene alguna sugerencia para eso?
Ara

Respuestas:

16

Si bien la otra respuesta aquí presenta algunos puntos, sus problemas específicos se deben a las limitaciones de la plataforma y la configuración del sistema operativo:

  • Su rendimiento está limitado por el uso de SSD SATA de consumo en un controlador RAID HP Smart Array P410 . Los discos SATA se ejecutan a 3.0Gbps (3G) en estos controladores en lugar de 6.0Gbps (6G). Esa es una barrera que afecta las velocidades de lectura de sus SSD Intel; 300 MB / s o menos por unidad.

  • El controlador Smart Array P410 tiene requisitos específicos y mejores prácticas cuando se usa con SSD. En resumen, el controlador es capaz de 50,000 IOPS, deshabilite el acelerador de matriz para su volumen SSD y el rendimiento alcanza un máximo de ~ 6 unidades.

  • El rendimiento del disco no siempre se trata de la velocidad de lectura / escritura secuencial. Intente realizar una evaluación comparativa con una herramienta adecuada como iozone o bonnie ++ . Aún obtiene los beneficios de E / S aleatorias de sus múltiples unidades.

  • En el nivel del sistema operativo, instale el paquete tuned-utils y configure el perfil enterprise-performancepara eliminar las barreras de escritura de sus sistemas de archivos y configure el elevador de E / S adecuado para su configuración. Esto también está cubierto en otras preguntas aquí .

  • Parece que estás usando LVM. Eso también puede tener un impacto ...

Aquí hay un informe de iozone para un G7 ProLiant que se ejecuta con cuatro SSD SATA 6G de consumo (reducidos a velocidades 3G) en el mismo controlador HP Smart Array P410 RAID.

Debería ver ~ 470 MB / s de escritura y 650 MB / s + de lectura.

[root@mdmarra /data/tmp]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.394 $
                Compiled for 64 bit mode.
                Build: linux 

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  478209.81 KB/sec
        Children see throughput for  1 rewriters        =  478200.84 KB/sec
        Children see throughput for  1 readers          =  677397.69 KB/sec
        Children see throughput for 1 re-readers        =  679523.88 KB/sec
        Children see throughput for 1 random readers    =  437344.78 KB/sec
        Children see throughput for 1 random writers    =  486254.41 KB/sec
ewwhite
fuente
Muchas gracias, el modelo es "DL160 G6", sí, hay backplane involucrado :( Incluso estaría contento con 600MB aquí, pero 270MB es realmente lento, lo que crees que debería hacer, ¿ayuda el raid de software?
Ara
2
De acuerdo, con un DL160 G6, debe tener dos cables que van del controlador RAID a la placa posterior de la unidad ... 8 ranuras para unidades. Su problema aquí es el rendimiento del disco, su metodología de prueba y la configuración del servidor. Pruebe las otras sugerencias que enumeré en mi respuesta.
ewwhite
Un poco interesante sobre el P410 haciendo solo 3G en SATA, y las mejores prácticas específicas. Mod up. (LVM, sin embargo, no debería ser un gran golpe en términos de impacto negativo en el rendimiento, también se señala aquí: unix.stackexchange.com/questions/7122/… )
Romano
1
@Ara No hay un controlador SATA 6G para ProLiant. Ese es el punto. Sus SSD solo se ejecutarán a velocidad 3G en esta plataforma a menos que use SSD SAS .
ewwhite
1
@Ara Software RAID implicaría conectarse a un controlador diferente, como un HBA SAS (por ejemplo, el LSI 9211-8i) ... le permitiría ver el ancho de banda completo de sus discos, pero hay otras facetas del rendimiento de SSD más allá de lo puro ancho de banda de lectura / escritura secuencial.
ewwhite
12

Oh querido, ¿por dónde empezar?

Hay mucho involucrado y necesitas una buena comprensión de todo. Solo lanzar un montón de discos contra un controlador RAID no producirá los resultados que está buscando.

Esto no se puede responder fácilmente. Pero al menos, aquí hay una lista de cosas que debes mirar:

  • ¿El controlador tiene el rendimiento necesario? (-> Hojas de datos)
  • ¿El controlador tiene suficiente ancho de banda para el host (sí, incluso en v1.0, ya que es x8)
  • ¿El conjunto de chips del sistema tiene suficiente rendimiento (CPU-Controller)? (desconocido)
  • ¿Qué estrategia de escritura le has dado instrucciones al Controlador? ( esto es lo que probablemente te ha mordido )
  • ¿Está todo alineado (Partición comienza, LV, PV)?
  • ¿Están armonizados los tamaños de bloque? (Tamaño de banda RAID, tamaño de bloque, bloques FS, ...)
  • ¿El sistema de archivos está optimizado para la configuración RAID? (Nivel y tamaño de bloque)

Dado que su rendimiento en relación con todo el RAID (sin tener en cuenta el FS) es significativamente menor que un solo disco, es probable que haya configurado su estrategia de escritura incorrectamente; el Controlador probablemente esté esperando que todos los discos confirmen la escritura (y a menos que tenga la RAM en la batería del controlador respaldada, esto podría ser lo mejor para usted).

romano
fuente
Esto es realmente más difícil de lo que pensaba, ¡pensé que era tan simple como actualizar el RAM Raid Controller a 512 MB! , gracias Roman, déjame ver algo de lo que acabas de decir con la esperanza de encontrar la razón
Ara
La mayoría de los anteriores son estrategias válidas de solución de problemas para casos extremos, pero no se aplican a los detalles de la configuración del póster original. El controlador aquí tiene el rendimiento y el ancho de banda requeridos, la CPU está bien, el controlador RAID tiene una relación predeterminada de caché de 25:75 R / W (debe deshabilitarse por completo para el uso de SSD), CentOS6 alinea las particiones correctamente y hay demasiada abstracción potencial para obtener los tamaños de bloque "armonizados". Los tres problemas en cuestión son que los discos 6G están acelerados a velocidades 3G, las barreras de escritura del sistema de archivos probablemente estén habilitadas y el elevador de E / S es el CFQ predeterminado.
ewwhite
1
Lamentablemente, el modelo de servidor no se observó en el momento de mi respuesta. Es bueno saber acerca de la aceleración. Creo que las barreras y el CFQ no costaron mucho en este "punto de referencia" específico, pero no obstante, información valiosa.
Romano
@Roman Lo siento, no mencioné el modelo antes, realmente aprecio tu ayuda, estoy probando las guías tuyas y de ewwhite para alcanzar 500-600MB, supongo que esa es la velocidad más alta que puedo alcanzar con este límite de 3G
Ara
1
No hay problema. Asegúrese de seguir los enlaces en las respuestas de ewwhite, ya que hay cosas específicas que hacer con el P410 junto con los SSD. Además, asegúrese de distribuir los cuatro discos de manera uniforme en las dos conexiones desde la placa posterior al controlador.
Romano