Co je hloubka fronty Fibre Channel HBA
Hloubka fronty udává počet I/O požadavků, které jsou „v provozu“, které byly vyžádány, ale ještě nebyly potvrzeny jako dokončené při komunikaci s úložištěm SAN. Tyto požadavky lze konfigurovat podle jednoho čísla logické jednotky (LUN), ke kterému se přistupuje nebo je založeno na HBA. Maximální hloubka fronty popisuje hodnotu požadavků, které mohou být maximálně za letu. Nastavení maximální hloubky fronty může výrazně ovlivnit výkon úložiště.
Maximální hloubka fronty by měla být zvolena pečlivě. Nízké hodnoty mohou vést ke špatnému I/O výkonu. Vysoké hodnoty mohou také vést ke špatnému výkonu, protože cíl SAN nepoužívá mezipaměti/plánování optimálním způsobem. Nejen hloubka fronty jednoho HBA, ale hloubka fronty všech HBA připojených k úložnému portu na cíli SAN se vzájemně ovlivňují na výkon. Dodavatel cíle SAN může mít doporučení pro maximální hloubku fronty, která se má použít. Další relevantní faktory jsou:
- počet portů HBA připojených k cíli
- vstupně/výstupní vzor generovaný aplikacemi spuštěnými v systému
Změna hloubky fronty Qlogic HBA
Chcete-li zjistit aktuální hodnotu hloubky fronty qdepth, spusťte následující příkaz:
# cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth 32
Výše uvedený příklad vrátí „32“.
Pro nastavení/změnu hodnoty qdepth lze použít sysfs, není nutné vykládat/načítat modul. Následující změní ql2xmaxqdepth:
# echo 16 > /sys/module/qla2xxx/parameters/ql2xmaxqdepth
Chcete-li nastavit hodnotu qdepth tak, aby byly nakonfigurovány i po restartu systému, změňte hodnotu volby ql2xmaxqdepth v ovladači qla2xxx:
# modinfo qla2xxx | grep ql2xmaxqdepth parm: ql2xmaxqdepth:Maximum queue depth to set for each LUN. Default is 32. (int)
Následující záznam je třeba přidat do /etc/modprobe.conf nebo soubor v adresáři /etc/modprobe.d a obraz initrd byl přestavěn, aby byla změna trvalá:
# vi /etc/modprobe.conf alias scsi_hostadapter1 qla2xxx options qla2xxx ql2xmaxqdepth=16CentOS / RHEL 6 :Jak znovu vytvořit počáteční obraz Ramdisku
Změna hloubky fronty Emulex HBA
U Emulex HBA není v současné době možná žádná dynamická úprava maximální hloubky fronty, je nutné modul uvolnit/načíst s novými parametry, případně restartovat celý systém. Emulex HBA podporuje následující možnosti pro ovlivnění hloubky fronty:
# 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)
Tyto možnosti lze použít v /etc/modprobe.conf nebo soubor v adresáři /etc/modprobe.d a byl přestavěn initrd obraz.
CentOS / RHEL 6 :Jak znovu vytvořit počáteční obraz RamdiskuVýchozí hodnotu lpfc lze také zkontrolovat z /sys/module/lpfc/parameters/ . Upozorňujeme však, že tyto hodnoty nebylo možné upravit (žádné oprávnění „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