If you are not satisfied with the performance of your hardware bus adapters (HBAs), change the maximum queue depth on your ESXi host.

About this task

The maximum value refers to the queue depths reported for various paths to the LUN. When you lower this value, it throttles the host's throughput and alleviates SAN contention concerns if multiple hosts are overutilizing the storage and are filling its command queue.

To adjust the maximum queue depth parameter, use the vCLI commands.

In the procedure, --server=server_name specifies the target server. The specified target server prompts you for a user name and password. Other connection options, such as a configuration file or session file, are supported. For a list of connection options, see Getting Started with vSphere Command-Line Interfaces.

Prerequisites

Install vCLI or deploy the vSphere Management Assistant (vMA) virtual machine. See Getting Started with vSphere Command-Line Interfaces. For troubleshooting, run esxcli commands in the ESXi Shell.

Procedure

  1. Verify which HBA module is currently loaded by entering the following command:

    esxcli --server=server_name system module list | grep module

    Use one the following options for module.

    Option

    Description

    qla

    QLogic

    qln

    QLogic native drivers

    lpfc

    Emulex

    bfa

    Brocade

  2. Adjust the queue depth for the appropriate module.

    esxcli --server=server_name system module parameters set -p parameter=value -m module

    Use the following strings for the parameter and module options.

    String

    Description

    -p ql2xmaxqdepth=value

    -m qla2xxx

    QLogic

    -p ql2xmaxqdepth=value

    -m qlnativefc

    QLogic native drivers

    -p lpfc0_lun_queue_depth=value

    -m lpfc820

    Emulex

    -p lpfc0_lun_queue_depth=value

    -m lpfc

    Emulex native drivers

    -p bfa_lun_queue_depth=value

    -m bfa

    Brocade

  3. Reboot your host.
  4. Verify your changes by running the following command: esxcli --server=server_name system module parameters list -m=module.

    module is an appropriate driver, such as qlnativefc or bfa.