¿Qué es la profundidad de cola de HBA de canal de fibra?
La profundidad de la cola indica la cantidad de solicitudes de E/S que están "en curso", que se han solicitado pero que aún no se han confirmado como completadas al comunicarse con un almacenamiento SAN. Estas solicitudes se pueden configurar por número de unidad lógica (LUN) único al que se accede o según el HBA. La profundidad máxima de la cola describe el valor de las solicitudes que se permite que estén en tránsito como máximo. La configuración de profundidad máxima de la cola puede influir significativamente en el rendimiento del almacenamiento.
La profundidad máxima de la cola debe elegirse con cuidado. Los valores bajos pueden provocar un mal rendimiento de E/S. Los valores altos también pueden conducir a un mal rendimiento, ya que el destino SAN no utiliza cachés/programación de manera óptima. No solo la profundidad de la cola de un solo HBA, sino también la profundidad de la cola de todos los HBA conectados a un puerto de almacenamiento en el objetivo SAN influyen en el rendimiento de los demás. El proveedor del destino SAN puede tener recomendaciones sobre la profundidad máxima de la cola que se utilizará. Otros factores relevantes son:
- la cantidad de puertos HBA conectados al objetivo
- el patrón de E/S generado por las aplicaciones que se ejecutan en el sistema
Cambiar la profundidad de cola de Qlogic HBA
Para conocer el valor actual de la profundidad de la cola q depth, ejecute el siguiente comando:
# cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth 32
El ejemplo anterior devuelve "32".
Para configurar/cambiar el valor de q depth, se puede usar sysfs, no es necesario descargar/cargar el módulo. Lo siguiente cambia la profundidad ql2xmaxq:
# echo 16 > /sys/module/qla2xxx/parameters/ql2xmaxqdepth
Para establecer el valor de q depth de manera que también se configuren después de reiniciar el sistema, cambie el valor de la opción ql2xmaxq depth en el controlador qla2xxx:
# modinfo qla2xxx | grep ql2xmaxqdepth parm: ql2xmaxqdepth:Maximum queue depth to set for each LUN. Default is 32. (int)
La siguiente entrada debe agregarse a /etc/modprobe.conf o un archivo en el directorio /etc/modprobe.d y la imagen initrd reconstruida para que el cambio sea permanente:
# vi /etc/modprobe.conf alias scsi_hostadapter1 qla2xxx options qla2xxx ql2xmaxqdepth=16CentOS/RHEL 6:Cómo reconstruir la imagen inicial de Ramdisk
Cambiar la profundidad de cola de Emulex HBA
Para Emulex HBA actualmente no es posible modificar dinámicamente la profundidad máxima de la cola, es necesario descargar/cargar el módulo con nuevos parámetros o reiniciar todo el sistema. Emulex HBA admite las siguientes opciones para influir en la profundidad de la cola:
# modinfo lpfc|grep queue_depth parm: lpfc_lun_queue_depth:Max number of FCP commands we can queue to a specific LUN (uint) parm: lpfc_hba_queue_depth:Max number of FCP commands we can queue to a lpfc HBA (uint)
Estas opciones se pueden usar en /etc/modprobe.conf o un archivo en el directorio /etc/modprobe.d y la imagen initrd reconstruida.
CentOS/RHEL 6:Cómo reconstruir la imagen inicial de RamdiskEl valor predeterminado de lpfc también se puede verificar desde /sys/module/lpfc/parameters/ . Pero tenga en cuenta que esos valores no se pueden modificar (sin permiso "w")
# ls -lrt /sys/module/lpfc/parameters/ -r--r--r--. 1 root root 4096 May 19 13:55 lpfc_hba_queue_depth -r--r--r--. 1 root root 4096 May 19 13:55 lpfc_lun_queue_depth -r--r--r--. 1 root root 4096 May 19 13:55 lpfc_tgt_queue_depth