To optimize storage performance and stability, vendors may recommend adjusting the queue depth on the HBA to enhance I/O and throughput.
Lowering the queue depth can alleviate storage array contention when multiple hosts are over-utilizing resources, while increasing it can improve performance for a single host or workload that isn't saturating the storage array.
VMware vSphere ESXi 8.0.x
VMware vSphere ESXi 9.0.x
To determine the current HBA queue depth value refer to the article under header 'To identify the storage adapter queue depth'
From CLI:
# esxcli system module parameters list -m lpfc | grep lpfc_hba_queue_depth
To change HBA queue depth to a desired value #### recommended by vendor:
# esxcli system module parameters set -p lpfc_hba_queue_depth=#### -m lpfc
Reboot the ESXi host.
Changing HBA adapter queue depth depends on the HBA hardware resource limit and the limit set by the firmware.
For example, after setting HBA queue depth to 8192 and rebooting the host, a similar entry can be noticed in VMkernel.log
2025-07-12T10:44:11.006Z cpu171:2098732)lpfc: lpfc_sli4_read_config:10410: 1:3361 HBA queue depth changed from 8192 to 5894
lpfc_hba_queue_depth has changed to the maximum allowed value after adjusting to the HBA hardware resource limit.
==========================
In this snip below from driver parameters, 'lpfc0', 'lpfc1'... are the software-defined, logical instances representing the adapter's ports within the hypervisor.
lpfc_hba_queue_depth int
lpfc0_hba_queue_depth int
lpfc1_hba_queue_depth int
lpfc2_hba_queue_depth int
lpfc3_hba_queue_depth int
To change adapter queue depth globally, apply the change to lpfc_lun_queue_depth