LinuxでのディスクI/Oスケジューラの検証
Oracle ASMのパフォーマンスの向上のために、Deadline I/Oスケジューラを使用することをお薦めします。
ディスクI/OスケジューラはディスクI/Oのリクエストを再調整、遅延またはマージすることで、スループットの向上と待機時間の短縮を促進します。LinuxにはDeadline、Noop、Anticipatory、およびCompletely Fair Queuing (CFQ)などの複数のディスクI/Oスケジューラがあります。
各クラスタ・ノードで次のコマンドを入力して、DeadlineディスクI/Oスケジューラが使用のために構成されていることを検証します。
# cat /sys/block/${ASM_DISK}/queue/scheduler
noop [deadline] cfq
この例では、デフォルトのディスクI/OスケジューラはDeadlineであり、ASM_DISK
はOracle Automatic Storage Management (Oracle ASM)のディスク・デバイスです。
一部の仮想環境(VM)や高速ストレージ・デバイスなどの特殊デバイスでは、前述のコマンドの出力がnone
となる可能性があります。オペレーティング・システムまたは仮想マシン(VM)がカーネルI/Oスケジューリングをバイパスして、すべてのI/Oリクエストを直接デバイスに発行します。このような環境ではI/Oスケジューラの設定を変更しないでください。
デフォルト・ディスクI/OスケジューラがDeadlineでない場合、ルール・ファイルを使用して設定します。
-
テキスト・エディタを使用して、Oracle ASMデバイス用にUDEVルール・ファイルを作成します。
# vi /etc/udev/rules.d/60-oracle-schedulers.rules
-
ルール・ファイルに次の行を追加して保存します。
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
-
クラスタ化されたシステムで、ルール・ファイルを、クラスタ上の他のすべてのノードにコピーします。たとえば:
$ scp 60-oracle-schedulers.rules root@node2:/etc/udev/rules.d/
-
ルール・ファイルをロードし、UDEVサービスを再起動します。たとえば:
-
Oracle LinuxおよびRed Hat Enterprise Linux
# udevadm control --reload-rules
-
SUSE Linux Enterprise Server。
# /etc/init.d boot.udev restart
-
-
ディスクI/OスケジューラがDeadlineとして設定されていることを確認します。