Как проверить текущее значение глубины очереди?

Вопрос или проблема

У меня есть сервер OEL, подключенный по оптоволокну к SAN-системе NetApp. Как я могу увидеть глубину очереди, которую видит ОС?

Вывод команды lspci:

05:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
05:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
08:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
08:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)

Вывод команды lsmod:

qla2xxx              1262209  352
scsi_transport_fc      83145  1 qla2xxx
scsi_mod              199641  15 be2iscsi,ib_iser,iscsi_tcp,bnx2i,libcxgbi,libiscsi2,scsi_transport_iscsi2,scsi_dh,sr_mod,sg,qla2xxx,scsi_transport_fc,libata,cciss,sd_mod

ls /sys/class/fc_host/host*

/sys/class/fc_host/host3:
device       issue_lip  port_id    port_state  speed       subsystem          supported_speeds  system_hostname  uevent
fabric_name  node_name  port_name  port_type   statistics  supported_classes  symbolic_name     tgtid_bind_type

/sys/class/fc_host/host4:
device       issue_lip  port_id    port_state  speed       subsystem          supported_speeds  system_hostname  uevent
fabric_name  node_name  port_name  port_type   statistics  supported_classes  symbolic_name     tgtid_bind_type

/sys/class/fc_host/host5:
device       issue_lip  port_id    port_state  speed       subsystem          supported_speeds  system_hostname  uevent
fabric_name  node_name  port_name  port_type   statistics  supported_classes  symbolic_name     tgtid_bind_type

/sys/class/fc_host/host6:
device       issue_lip  port_id    port_state  speed       subsystem          supported_speeds  system_hostname  uevent
fabric_name  node_name  port_name  port_type   statistics  supported_classes  symbolic_name     tgtid_bind_type

На моем сервере NETAPP:

ls /proc/scsi/qla2xxx
1
ls /proc/scsi/qla2xxx/1 | grep -i -A1 -B1 "queue depth"
Total number of interrupts = 30686605
    Device queue depth = 0x20
Number of free request entries = 1842

Таким образом, x20 это 32 в десятичном формате,
это то число, которое вы ищете.
О расчетах для NETAPP можно почитать здесь:

https://library.netapp.com/ecmdocs/ECMP1196793/html/GUID-A055B184-0876-4376-9C75-35FE8C9BE832.html

РЕДАКТИРОВАТЬ:
другой способ посмотреть:
cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth

Самый простой способ

cat /sys/block/<sdX>/device/queue_depth

А как я могу это изменить?

echo 1024 > /sys/block/sda/device/queue_depth
bash: echo: ошибка записи: Недопустимый аргумент

Ответ или решение

Операционная система Oracle Enterprise Linux (OEL) обладает различными методами для мониторинга и управления глубиной очереди. Это важный параметр для настройки и оптимизации производительности ваших систем хранения данных на SAN, таких как NetApp. Давайте разберем, как именно можно проверить текущую глубину очереди, а также некоторые аспекты конфигурации, которые вам стоит учитывать.

Теория (Theory)

Глубина очереди (queue depth) определяет, сколько команд ввода-вывода может находиться в очереди на обработку устройством одновременно. Это ключевой параметр, влияющий на производительность Fibre Channel Host Bus Adapter (HBA) и ваших систем хранения данных. Глубину очереди необходимо точно настраивать, чтобы получить максимальную производительность от хранилища, предотвращая как перегрузки ввода-вывода, так и простои от недозагрузки.

Пример (Example)

В вашем случае сервер с OEL подключен через Fibre Channel к хранилищу NetApp через адаптеры QLogic ISP2532. Эти адаптеры поддерживаются драйвером qla2xxx, который предоставляет информацию о текущих настройках глубины очереди.

На вашем сервере доступен следующий способ проверки глубины очереди:

  1. Проверка через /proc/scsi/qla2xxx:
    Выполните команду cat /proc/scsi/qla2xxx/1 | grep -i -A1 -B1 "queue depth" для получения текущей глубины очереди. Как видно из примера, "Device queue depth = 0x20", что равно десятичному 32.

  2. Чтение параметров модуля ядра:
    Используйте cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth для получения значения максимальной глубины очереди, установленной для модуля qla2xxx.

  3. Проверка через sysfs для специфицированного блочного устройства:
    Используйте cat /sys/block/<sdX>/device/queue_depth, заменяя <sdX> на соответствующий идентификатор вашего устройства, чтобы получить текущую настройку глубины очереди для конкретного блочного устройства.

Применение (Application)

Теперь, когда вы знаете, как проверить текущую глубину очереди, важно также понимать, как изменить это значение для оптимизации под ваши конкретные потребности. Однако стоит учесть, что глубина очереди не может быть изменена на произвольное значение; система может возвращать ошибку, как в вашем примере "echo: write error: Invalid argument", если вы пытаетесь внести неподдерживаемые изменения.

Чтобы изменить глубину очереди, выполните следующие шаги:

  1. Удостоверьтесь, что ваш параметр поддерживается системой:
    Перед тем как изменять значение, рекомендуется проверить документацию вашего устройства и конкретные ограничения хранилища. Некоторые значения могут быть ограничены как самим адаптером, так и конфигурацией хранилища.

  2. Изменение глубины очереди:
    Используйте команду echo 32 > /sys/block/sda/device/queue_depth, заменяя 32 на ваше целевое значение и sda на ваш диск, чтобы изменить параметр.

  3. Проверка изменений:
    После внесения изменений вы должны проверить новое значение глубины очереди, чтобы убедиться в успешности операции.

Заключение

Оптимальная настройка глубины очереди требует учета множества факторов, таких как поддержка устройства, потребности в производительности и спецификации хранилища. Тщательная настройка и мониторинг этих параметров позволяет значительно повысить производительность и надежность системы хранения данных.

Настоятельно рекомендуется провести предварительные тесты в контролируемой среде перед применением изменений на производственных системах, чтобы избежать непредвиденных последствий и убедиться в целесообразности выбранных настроек.

Оцените материал
Добавить комментарий

Капча загружается...