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:
- ¿Por qué es tan lento?
- ¿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/sda
comando 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-utils
y elegir el enterprise-storage
perfil, 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 -s144g
comando:
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/sda
comando 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 -h
y 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
iozone -t1 -i0 -i1 -i2 -r1m -s144g
. :(Respuestas:
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-performance
para 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.
fuente
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:
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).
fuente