Performance | Cambiar el Queue Depth en QLogic y Emulex para mejorar la performance del Storage
February 3, 2010
by
Quintana,Diego
Tener en cuenta el comportamiento en el acceso a disco es algo vital en infraestructuras de alta densidad.
Cuando tenemos una gran cantidad de máquinas virtuales por Datastore o muchos ESX en un mismo cluster compartiendo los mismos VMFS, puede ocurrir que encuentren una baja performance en las HBAS, en ese caso probablemente tengamos que cambiar el valor máximo de queue depths en la HBA.
Cuando una sola maquina virtual es la activa dentro de una LUN, solo se debe setear al maximo el valor del queue depth.
Pero cuando muchas máquinas virtuales acceden a una lun y estas permanecen activas (es decir hay operaciones de escritura y lectura) el valor Disk.SchedNumReqOutstanding también se vuelve critico .
La recomendación de VMware en su KB1267 es la de configurar los valores de Disk.SchedNumReqOutstanding y el queue depth del adaptador en el mismo valor.
Pasos pare cambiar los valores en ESX 4.0
Para ajustar el queue depth para una HBA:
- Ingresar a la service console:
- Verificar el modulo de la HBA cargadoQLogic:
vmkload_mod -l | grep qla2xxxEmulex:
vmkload_mod -l | grep lpfcdd
- Ejecutar el siguiente comando, ej para las: QLogic qla2300_707 y Emulex lpfcdd_7xx
QLogic:esxcfg-module -s ql2xmaxqdepth=64 qla2300_707
Emulex:esxcfg-module -s lpfc0_lun_queue_depth=16 lpfcdd_7xx
En este caso las ql2x y la lpfc0 deberían configurarse con el valor 64.
- Reiniciar el host.
ESX 3.0/3.5
Para una HBA QLogic:
- Ingresar a la service console:
- Verificar el modulo de la HBA cargado
vmkload_mod -l | grep qla2300
qla2300_707 (ESX 3.0.x)
qla2300_707_vmw (ESX 3.5)
- Dependiendo el modulo de la HBA tener en cuenta y ejecutar :
esxcfg-module -s ql2xmaxqdepth=64 qla2300_707
esxcfg-boot –b
- Reiniciar el ESX.
Para cambiar el queue depth of an Emulex HBA:
- Ingresar a la SC como root.
- Verificar que modulo de la placa Emulex es el que se encuentra cargado:vmkload_mod -l | grep lpfcdd
Dependiendo el modulo de la HBA, deberán seleccionar:
lpfcdd_7xx
lpfcdd_732 - Si tienen una HBA Emulex en el ESX ejecutar el siguiente comando. (el ejemplo es para la el modulo lpfcdd_7xx )
- Ejecutaresxcfg-module -s lpfc0_lun_queue_depth=16 lpfcdd_7xx
esxcfg-boot –b
- Para multiples HBA Emulex ejectuar:
esxcfg-module -s "lpfc0_lun_queue_depth=16 lpfc1_lun_queue_depth=16" lpfcdd_7xx
esxcfg-boot –bEn este caso, ambas HBAs lpfc0 y la lpfc1 tendrán el LUN queue depths en 16.
- Reiniciar el ESX.
Aquí les dejo la fuente del articulo de vmware.
Saludos
Diego Quintana