Che cos'è la profondità della coda HBA Fibre Channel
La profondità della coda indica il numero di richieste I/O che sono "in volo", che sono state richieste ma non ancora confermate come completate durante la comunicazione con uno storage SAN. Queste richieste possono essere configurate per singolo numero di unità logica (LUN) a cui si accede o in base all'HBA. La profondità massima della coda descrive il valore delle richieste che possono essere al massimo in volo. L'impostazione della profondità massima della coda può influenzare in modo significativo le prestazioni di archiviazione.
La profondità massima della coda deve essere scelta con attenzione. Valori bassi possono portare a prestazioni I/O scadenti. Valori elevati possono anche portare a prestazioni scadenti, poiché la destinazione SAN non utilizza cache/scheduling in modo ottimale. Non solo la profondità della coda di un singolo HBA, ma anche la profondità della coda di tutti gli HBA collegati a una porta di archiviazione sulla destinazione SAN influenzano reciprocamente le prestazioni. Il fornitore della destinazione SAN potrebbe avere consigli per la profondità massima della coda da utilizzare. Ulteriori fattori rilevanti sono:
- il numero di porte HBA collegate al target
- il pattern di I/O generato dalle applicazioni in esecuzione sul sistema
Modifica della profondità della coda di Qlogic HBA
Per conoscere il valore di profondità della coda corrente qdepth, eseguire il comando seguente:
# cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth 32
L'esempio sopra restituisce "32".
Per impostare/modificare il valore di qdepth, è possibile utilizzare sysfs, non è necessario scaricare/caricare il modulo. Quanto segue cambia la ql2xmaxqdepth:
# echo 16 > /sys/module/qla2xxx/parameters/ql2xmaxqdepth
Per impostare il valore di qdepth in modo che siano configurati anche dopo il riavvio del sistema, cambia il valore dell'opzione ql2xmaxqdepth nel driver qla2xxx:
# modinfo qla2xxx | grep ql2xmaxqdepth parm: ql2xmaxqdepth:Maximum queue depth to set for each LUN. Default is 32. (int)
La seguente voce deve essere aggiunta a /etc/modprobe.conf o un file nella directory /etc/modprobe.d e l'immagine initrd ricostruita per rendere permanente la modifica:
# vi /etc/modprobe.conf alias scsi_hostadapter1 qla2xxx options qla2xxx ql2xmaxqdepth=16CentOS / RHEL 6:come ricostruire l'immagine Ramdisk iniziale
Modifica della profondità della coda di Emulex HBA
Per Emulex HBA non è attualmente possibile alcuna modifica dinamica della profondità massima della coda, è necessario scaricare/caricare il modulo con nuovi parametri o riavviare l'intero sistema. Emulex HBA supporta le seguenti opzioni per influenzare la profondità della coda:
# 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)
Queste opzioni possono essere utilizzate in /etc/modprobe.conf o un file nella directory /etc/modprobe.d e l'immagine iniziale ricostruita.
CentOS / RHEL 6:come ricostruire l'immagine Ramdisk inizialeIl valore predefinito di lpfc può anche essere verificato da /sys/module/lpfc/parameters/ . Ma nota che quei valori non possono essere modificati (nessuna autorizzazione "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