ブロック・スケジューラー・パフォーマンス
最適なブロック・スケジューラー・パフォーマンスを実現するために、いくつかのパラメーターの調整が必要になる場合があります。
ブロック・スケジューラー・パフォーマンスは、SLES 11 および SLES 11 SP1、RHEL5 および RHEL6 で向上する可能性があります。
デフォルトで、2.6 カーネルは、rfq のフェアネス・キューイング値を要求します。一部の環境では、この値が原因でデバイス・キュー項目数が 1 に削減されます。この値を rfq から noop に変更することで、スケジューラー・フェアネス・アルゴリズムが使用されなくなり、キュー項目数が削減されることはなく、ハイパフォーマンスが維持されます。
この値は、最近の一部の 2.6 カーネルでは、ブート時に変更することができます。実行時に次のようにします。
- 通常、ブート時に適切なブート・パス (/boot/grub/menu.lst、/boot/grub/grub.conf、または /etc/lilo.conf.xなど) のカーネル・メニュー行にカーネル・パラメーター elevator=noop が付加されます。
- 実行時に、スケジューラーの名前を /sys/block/$devicename/queue/scheduler にエコー出力することで、スケジューラーを変更します。ここで、デバイス名は、ブロック・デバイスのベース名 (/dev/sda の場合は sda、など) です。 一部のバージョンの Linux は、スケジューラーをマルチパス・デバイスにも適用します。これらも、次の例のように修正する必要があります。
- echo noop > /sys/block/sda/queue/scheduler
- echo noop > /sys/block/dm-0/queue/scheduler
新規デバイスが検出された場合、マルチパスがフラッシュおよび再ロードされるか、ファイバー・チャネル・ドライバー・モジュールが再ロードされます。 echo オプションを使用するには、ブート時にデフォルト・カーネル・オプションも変更していない限りは、変更を再適用する必要があります。