Changing HBA Queue Depth for Emulex adapters
search cancel

Changing HBA Queue Depth for Emulex adapters

book

Article ID: 416300

calendar_today

Updated On:

Products

VMware vSphere ESXi VMware vSphere ESXi 8.0

Issue/Introduction

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.


Environment

VMware vSphere ESXi 8.0.x
VMware vSphere ESXi 9.0.x

Resolution

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. 


Additional Information

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