Прежде, чем изменить настройки глубины очереди host bus adapter на хосте VMware ESXi, проверьте какой именно HBA модуль загружен. Подключитесь к своему серверу ESXi по SSH и выполните команду:
- Для QLogic:
# esxcli system module list | grep qla
- Для Emulex:
# esxcli system module list | grep lpfc
В зависимости от установленного HBA модуля (qla или lpfc) вы можете изменить длину очереди с помощью следующих команд:
- Для QLogic:
# esxcli system module parameters set -p ql2xmaxqdepth=128 -m qla2xxx
- Для Emulex:
# esxcli system module parameters set -p lpfc0_lun_queue_depth=128 -m lpfcххх
В данном примере я установил глубину очереди равной 128 (задайте значение глубины очереди в зависимости от рекомендаций вендора вашего дискового массива)..
Также вы можете изменить глубину очереди hba с помощью PowerCLI. Установите модуль VMware vSphere PowerCLI на свой компьютер и подключитесь к хосту ESXi (или серверу vCenter):
Install-Module -Name VMware.PowerCLI
Connect-VIServer your_host_name
Проверьте какой HBA модуль загружен (аналог команды esxcli system module list | grep lpfc
):
$esxcli = Get-EsxCli -VMhost hq-esx01 -V2
$List = $esxcli.system.module.parameters.list.CreateArgs()
$List.module = ‘lpfc’
$esxcli.system.module.parameters.list.Invoke($List)
Команда вернула, что значение параметра lpfc_lun_queue_depth = 128 (Max number of FCP commands we can queue to a specific LUN ). Это значит, что используется Emulex адаптер с глубиной очереди 128.
Чтобы уменьшить глубину очереди до 64, выполните следующие PowerShell команды:
$Parameters = $esxcli.system.module.parameters.set.CreateArgs()
$Parameters.module = ‘lpfc’
$Parameters.parameterstring = ‘lpfc_lun_queue_depth=64’
$esxcli.system.module.parameters.set.Invoke($Parameters)
Перезагрузите хост ESXi чтобы применить изменения.