Tengo un sistema en ejecución con baja utilización de IO:
- HP DL380G7 (24 gb de RAM)
- Smart Array p410i con 512 MB de caché de escritura respaldada por batería
- 6 unidades SAS 10k rpm 146gb en RAID10
- Debian Squeze linux, ext4 + LVM, hpacucli instalado
iostat (cciss / c0d1 = matriz raid10, dm-7 = partición lvm 60G para prueba):
Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm% util cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 106,80 0,00 0,42 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 2,80 0,00 0,01 8,00 0,00 0,00 0,00 0,00 dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16 dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
hpacucli "Ctrl all show config"
Smart Array P410i en la ranura 0 (integrada) (sn: 5001438011FF14E0) matriz A (SAS, espacio no utilizado: 0 MB) Logicaldrive 1 (136.7 GB, RAID 1, OK) physicaldrive 1I: 1: 1 (puerto 1I: casilla 1: bahía 1, SAS, 146 GB, OK) physicaldrive 1I: 1: 2 (puerto 1I: casilla 1: bahía 2, SAS, 146 GB, OK) matriz B (SAS, espacio no utilizado: 0 MB) Logicaldrive 2 (410.1 GB, RAID 1 + 0, OK) physicaldrive 1I: 1: 3 (puerto 1I: casilla 1: bahía 3, SAS, 146 GB, OK) physicaldrive 1I: 1: 4 (puerto 1I: casilla 1: bahía 4, SAS, 146 GB, OK) physicaldrive 2I: 1: 5 (puerto 2I: casilla 1: bahía 5, SAS, 146 GB, OK) physicaldrive 2I: 1: 6 (puerto 2I: casilla 1: bahía 6, SAS, 146 GB, OK) physicaldrive 2I: 1: 7 (puerto 2I: casilla 1: bahía 7, SAS, 146 GB, OK) physicaldrive 2I: 1: 8 (puerto 2I: casilla 1: bahía 8, SAS, 146 GB, OK) SEP (ID del proveedor PMCSIERA, modelo SRC 8x6G) 250 (WWID: 5001438011FF14EF)
hpacucli "Ctrl Mostrar todo el estado"
Smart Array P410i en la ranura 0 (integrado) Estado del controlador: OK Estado de caché: OK Estado de la batería / condensador: OK
Comando Sysbench
sysbench --init-rng = on --test = fileio --num-threads = 16 --file-num = 128 --file-block-size = 4K --file-total-size = 54G --file-test -mode = rndrd --file-fsync-freq = 0 --file-fsync-end = fuera de ejecución --max-request = 30000
Resultados de Sysbench
sysbench 0.4.12: punto de referencia de evaluación del sistema de subprocesos múltiples Ejecutando la prueba con las siguientes opciones: Número de hilos: 16 Inicializando el generador de números aleatorios desde el temporizador. Banderas adicionales para abrir archivos: 0 128 archivos, 432Mb cada uno Tamaño total de archivo de 54 Gb Tamaño de bloque 4Kb Número de solicitudes aleatorias para E / S aleatorias: 30000 Relación lectura / escritura para prueba de E / S aleatoria combinada: 1.50 Usar el modo de E / S sincrónico Haciendo prueba de lectura aleatoria ¡Hilos comenzados! Hecho. Operaciones realizadas: 30000 Lectura, 0 Escritura, 0 Otros = 30000 Total Lectura 117.19Mb Escrito 0b Total transferido 117.19Mb (935.71Kb / seg) 233.93 Solicitudes / seg ejecutadas Resumen de ejecución de prueba: tiempo total: 128.2455s cantidad total de eventos: 30000 tiempo total empleado en la ejecución del evento: 2051.5525 estadísticas por solicitud: min: 0.00ms promedio: 68.39ms max: 2010.15ms aprox. Percentil 95: 660.40ms Hilos de equidad: eventos (avg / stddev): 1875.0000 / 111.75 tiempo de ejecución (avg / stddev): 128.2220 / 0.02
iostat durante la prueba
avg-cpu:% user% nice% system% iowait% steal% inactivo 0,00 0,01 0,10 31,03 0,00 68,86 Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm% util cciss / c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Bonnie ++ v1.96
cmd: / usr / sbin / bonnie ++ -c 16 -n 0 Escribir un byte a la vez ... hecho Escritura inteligente ... hecho Reescribiendo ... hecho Leyendo un byte a la vez ... hecho Lectura inteligente ... hecho comenzarlos ... hecho ... hecho ... hecho ... hecho ... hecho ... hecho ... Versión 1.96 ------ Salida secuencial ------ - Entrada secuencial- --Random- Concurrencia 16 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Tamaño de la máquina K / seg% CP K / seg% CP K / seg% CP K / seg% CP K / seg% CP / seg% CP seo-db 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265.2 1 Latencia 14899us 726ms 15194ms 100ms 122ms 665ms 1.96,1.96, seo-db, 16,1337541936,48304M ,, 819,99,188274,17,98395,8,2652,78,201280,8,265.2,1 ,,,,,,,,,,,,,, ,,,, 14899us, 726ms, 15194ms, 100ms, 122ms, 665ms ,,,,,,
Preguntas
Entonces, sysbench mostró 234 lecturas aleatorias por segundo.
Espero que sea al menos 400.
¿Cuál puede ser el cuello de botella? LVM?
Otro sistema con unidades mdadm raid1 + 2x 7200rpm muestra más de 200 lecturas aleatorias por segundo ...
¡Gracias por cualquier ayuda!
debian
lvm
hp
performance
hp-smart-array
Oleg Golovanov
fuente
fuente
sysbench
línea de comando en particular ? ¿Estás simulando un escenario de uso del mundo real?Respuestas:
Su sistema definitivamente tiene un rendimiento inferior en función de sus especificaciones de hardware. Cargué la
sysbench
utilidad en un par de servidores inactivos HP ProLiant DL380 G6 / G7 que ejecutan CentOS 5/6 para verificar su rendimiento. Estas son particiones fijas normales en lugar de LVM. (Normalmente no uso LVM, debido a la flexibilidad que ofrecen los controladores HP Smart Array)El DL380 G6 tiene una matriz RAID 1 + 0 de 6 discos en un controlador Smart Array P410 con 512 MB de caché respaldada por batería. El DL380 G7 tiene una matriz SSD SLC empresarial de 2 discos. Los sistemas de archivos son XFS . Usé la misma línea de comando sysbench que tú:
Mis resultados fueron 1595 lecturas aleatorias por segundo en 6 discos.
En SSD, el resultado fue 39047 lecturas aleatorias por segundo . Los resultados completos están al final de esta publicación ...
En cuanto a su configuración, lo primero que me llama la atención es el tamaño de su partición de prueba. Casi está llenando la partición de 60 GB con 54 GB de archivos de prueba. No estoy seguro de si ext4 tiene un problema con un rendimiento de más del 90%, pero eso es lo más rápido para modificar y volver a probar. (o use un conjunto más pequeño de datos de prueba)
Incluso con LVM, hay algunas opciones de ajuste disponibles en esta configuración de controlador / disco. Es útil verificar la lectura anticipada y cambiar la configuración del planificador de E / S de la cfq predeterminada a la fecha límite o noop . Consulte la pregunta y las respuestas en: Linux : ajuste del controlador RAID de hardware del mundo real (scsi y cciss)
¿Cuál es la proporción de caché de su controlador RAID? Normalmente uso un balance de lectura / escritura del 75% / 25%. Esto debería ser una prueba rápida. La matriz de 6 discos se completó en 18 segundos. La tuya tomó más de 2 minutos.
¿Se puede ejecutar una prueba bonnie ++ o iozone en la partición / matriz en cuestión? Sería útil ver si hay otros cuellos de botella en el sistema. No estaba familiarizado con sysbench , pero creo que estas otras herramientas le darán una mejor visión general de las capacidades del sistema.
Las opciones de montaje del sistema de archivos pueden hacer una pequeña diferencia, pero creo que el problema podría ser más profundo que eso ...
salida de hpacucli ...
Resultados de 6 discos sysbench DL380 G6 ...
Resultados de SSD sysbench DL380 G7 ...
fuente
bonnie++
línea de comando?deadline
también ... Bajo cargas de DB, puede funcionar mejor quenoop
, además, hay algunos ajustables adicionales en su/sys/block/cciss1/queue/iosched/
si lo usadeadline
. Vea esta publicación para más detalles sobre afinaciones más finas. Pude hacer esa prueba hasta 2600 lecturas aleatorias / segundo al hacerlo.