Translated message

A translation of this page exists in English.

HBA キュー深度、現在のキュー深度値を確認する方法、その値の変更方法について

Solution Unverified - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 9
  • Red Hat Enterprise Linux (RHEL) 8
  • Red Hat Enterprise Linux (RHEL) 7
  • Red Hat Enterprise Linux (RHEL) 6
  • Red Hat Enterprise Linux (RHEL) 5

Issue

  • Qlogic HostBusAdapter (HBA) の現在のキュー深度値を確認し、その値を変更する方法は?
  • ファイバーチャネル HBA のキュー深度とは? 現在のキュー深度値の確認方法は?

Resolution

QLogic HBA ドライバーを介してキュー深度を変更する

この方法を使用する場合、ドライバーのアンロード/ロード、またはシステムの再起動が必要となります。これにより、qla2xxx ドライバーの ql2xmaxqdepth オプションの値が変更されます。

[root@host ~]# modinfo qla2xxx | grep ql2xmaxqdepth  
parm:    ql2xmaxqdepth:Maximum queue depth to report for target devices. (int)
  • [RHEL5] の場合は、/etc/modprobe.conf に以下のエントリーを追加する必要があります。[RHEL6、7] の場合は、/etc/modprobe.d ディレクトリーにファイル (例: /etc/modprobe.d/qla2xxx.conf) を作成して以下のエントリーを追加し、その後 initrd/initramfs イメージを再構築して変更を永続化する必要があります。

    options qla2xxx ql2xmaxqdepth=16
    
  • RHEL 5 を使用している場合は、/etc/modprobe.conf ファイルに以下のエントリーを追加する必要がある可能性もあることに注意してください。

    alias scsi_hostadapter1 qla2xxx     
    
  • 詳細は、How do I rebuild the initial ramdisk image in Red Hat Enterprise Linux? を参照してください。次回システムを起動する際には、新しくビルドされた initrd/initramfs を使用して起動するようにしてください。

  • QLogic は、SAN の飽和度を軽減するために役立つ 2 つ目の設定可能な項目として実行スロットルをします。 このパラメーターの詳細は、What is QLogic execution throttle and how does it relate to queue depth? を参照してください。 実行スロットルは、カードの設定ユーティリティー内で変更する必要があります。

Emulex HBA ドライバーを介してキュー深度を変更する

この方法を使用する場合、ドライバーのアンロード/ロード、またはシステムの再起動が必要となります。以下のオプションは、queue depth に影響を与えます。

[root@host ~]# modinfo  lpfc|grep queue_depth
parm:           lpfc_lun_queue_depth:Max number of FCP commands we can queue to a specific LUN (uint)
parm:           lpfc_hba_queue_depth:Max number of FCP commands we can queue to a lpfc HBA (uint)
  • これらのオプションは /etc/modprobe.conf で使用できます。[RHEL6、7 の場合]、/etc/modprobe.d ディレクトリーにファイル (例: /etc/modprobe.d/lpfc.conf) を作成し、変更を永続化するために initrd/initramfs イメージを再構築してから再起動する必要があります。 詳細は、How do I rebuild the initial ramdisk image in Red Hat Enterprise Linux? を参照してください。

    options lpfc lpfc_lun_queue_depth=16
    

VMware PVSCSI HBA のキュー深度を変更する

fnic HBA ドライバーのキュー深度を変更する

デバイスごとにキュー深度を変更する

Root Cause

  • キュー深度は、SAN ストレージとの通信時に "まさに処理されている"、つまりリクエストされたが完了が確認されていない I/O リクエストの数を表します。これらのリクエストは、アクセスされる単一の論理ユニット番号 (LUN) ごとに設定することも、HBA に基づいて設定することもできます。最大キュー深度とは、同時に処理できるリクエストの最大数を表します。最大キュー深度の設定は、ストレージのパフォーマンスに大きな影響を与える可能性があります。

  • 最大キュー深度は慎重に選択する必要があります。値が低いと、I/O パフォーマンスが低下する可能性があります。値が高いと、SAN ターゲットがキャッシュやスケジューリングを最適に使用しなくなるため、この場合もパフォーマンスが低下する可能性があります。単一の HBA のキュー深度だけでなく、SAN ターゲット上のストレージポートに接続されているすべての HBA のキュー深度も、互いのパフォーマンスに影響を与えます。SAN ターゲットのベンダーは、使用すべき最大キュー深度を推奨している場合があります。さらに、以下が関連要因として挙げられます。

    • ターゲットに接続されている HBA ポートの数
    • システム上で実行されているアプリケーションによって生成される I/O パターン

Diagnostic Steps

qdepth 設定を実際に確認する方法は?

queue_depth を 1 に設定した後、blktrace を使用して、ドライバーにおける処理中の数が 2 を超えないことを確認できます。

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments