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
. :(