Estoy tratando de sintonizar mi NAS, ejecutando openfiler, y me pregunto por qué estoy obteniendo un rendimiento de lectura relativamente pobre de 4 unidades WD RE3 en RAID 5.
EDITAR: tenga en cuenta que estoy hablando de la velocidad de lectura del disco almacenado en búfer no velocidades
EDITAR: Se modificó el formato para dejar en claro que hay dos conjuntos de salida.
Cuando ejecuto hdparm en el meta dispositivo, obtengo los niveles de rendimiento que esperaría, ¡caigo al volumen y es un tercio la velocidad!
Alguien alguna idea de por qué? ¿Es LVM tan malo?
Decano
Meta dispositivo / dev / md0 resultados
[root @ nas2, etc.] # hdparm -tT / dev / md0 / dev / md0: Lecturas de tiempo en caché: 4636 MB en 2.00 segundos = 2318.96 MB / seg Lecturas de disco almacenadas temporalmente: 524 MB en 3.01 segundos = 174.04 MB / seg
Vol group / dev / mapper / vg1-vol1 resultados
[root @ nas2, etc.] # hdparm -tT / dev / mapper / vg1-vol1 / dev / mapper / vg1-vol1: Lecturas de tiempo en caché: 4640 MB en 2.00 segundos = 2320.28 MB / seg Lecturas de disco almacenadas temporalmente: 200 MB en 3.01 segundos = 66.43 MB / seg.
Editar: consulte la sección de la página de manual de hdparm que sugiere que esta es una prueba perfectamente válida para el rendimiento de lectura secuencial, que es el problema que estoy tratando de resolver.
-t Realizar tiempos de lecturas de dispositivos para fines de referencia y comparación. Para obtener resultados significativos, esta operación debe repetirse 2-3 veces sistema inactivo (no hay otros procesos activos) con al menos un par de megabytes de memoria libre. Esto muestra la velocidad de lectura a través del búfer almacenar en caché en el disco sin ningún almacenamiento en caché previo de datos. Esta medición es una indicación de qué tan rápido el disco puede soportar lecturas secuenciales de datos bajo Linux, sin ningún gasto de sistema de archivos. Para garantizar mediciones precisas, la memoria caché del búfer se vacía durante el procesamiento de -t utilizando BLKFLSBUF ioctl. Si también se especifica el indicador -T, se incorporará un factor de corrección basado en el resultado de -T en el resultado informado para el -t operación.
fuente
bonnie++
?Respuestas:
La configuración predeterminada de lectura previa para LVM es realmente pesimista. Intente
blockdev --setra 8192 /dev/vg1/vol1
y vea qué aumenta su rendimiento de LVM. Siempre recibirá un golpe de rendimiento con LVM; lo medimos en sistemas correctamente configurados con aproximadamente el 10% del rendimiento del dispositivo de bloque subyacente.fuente
No tengo una buena explicación, pero puedo confirmar los resultados.
Prueba de RAID (unidades raid5, 4x1.5TB)
prueba de volumen que utiliza md2 como dispositivo físico.
Hice el cambio propuesto por womble y vi resultados como este.
fuente
Asegúrate de comparar manzanas con manzanas.
hdparm -t
lee desde el principio del dispositivo, que también es la parte más rápida de su disco si le está dando un disco completo (y sus platos giratorios).Asegúrese de compararlo con un LV desde el comienzo del disco.
Para ver el uso de mapeo
pvdisplay -m
.(bueno, claro, la diferencia en los números puede ser insignificante. Pero al menos piénsalo :)
fuente
La carga de trabajo creada por hdparm -T no es representativa para casi cualquier caso de uso, excepto la transmisión de lecturas desde un único archivo grande. Además, si el rendimiento es una preocupación, no use raid5.
fuente
Puede averiguar dónde hdparm pasa su tiempo con blktrace (si está en E / S) u oprofile (si está en la CPU). Conocer la configuración de LVM también ayudaría (pvdisplay, vgdisplay, lvdisplay).
fuente