Red Hat Training
A Red Hat training course is available for RHEL 8
第19章 ディスクスケジューラーの設定
ディスクスケジューラーは、ストレージデバイスに送信された I/O 要求を順序付けます。
スケジューラーは以下の複数の方法で設定できます。
- Setting the disk scheduler using TuneD の説明に従って、TuneD を使用してスケジューラーを設定します。
-
udev ルールを使用したディスクスケジューラーの設定 で説明されているように、
udev
を使用してスケジューラーを設定します。 - 特定ディスクに任意のスケジューラーを一時的に設定 で説明されているように、実行中のシステムのスケジューラーを一時的に変更します。
Red Hat Enterprise Linux 8 では、ブロックデバイスはマルチキュースケジューリングのみに対応します。これにより、ブロックレイヤーのパフォーマンスを高速ソリッドステートドライブ (SSD) およびマルチコアシステムで適切に拡張できます。
Red Hat Enterprise Linux 7 以前のバージョンで利用できた従来のシングルキュースケジューラーが削除されました。
19.1. 利用可能なディスクスケジューラー
Red Hat Enterprise Linux 8 では、以下のマルチキューディスクスケジューラーに対応しています。
none
- FIFO (First-in First-out) スケジューリングアルゴリズムを実装します。これにより、汎用のブロック層で単純な last-hit キャッシュを介して要求がマージされます。
mq-deadline
これにより、要求がスケジューラーに到達した時点からの要求のレイテンシーが保証されます。
mq-deadline
スケジューラーは、キュー待ちの I/O リクエストを読み取りバッチまたは書き込みバッチに分類します。そして、論理ブロックアドレス (LBA) を増大順に実行するためのスケジュール設定を行います。デフォルトでは、アプリケーションは読み取り I/O 操作でブロックする可能性の方が高いため、読み取りバッチの方が書き込みバッチより優先されます。mq-deadline
がバッチを処理すると、このプロセスは書き込み動作が待機している長さを確認して、次の読み取りバッチまたは書き込みバッチをスケジュールします。このスケジューラーはほとんどのユースケースに適していますが、必要に応じて特に書き込み動作より読み取り動作の方が頻繁に起こるユースケースに適しています。
bfq
デスクトップシステムおよび対話式のタスクを対象とします。
bfq
スケジューラーは、単一のアプリケーションがすべての帯域幅を使用しないようにします。これにより、ストレージデバイスがアイドル状態であるかのように常に応答できるようになります。デフォルトの設定では、bfq
は、最大スループットを実現するのではなく、レイテンシーを最小限に抑えることに焦点を合わせています。bfq
はcfq
コードに基づいています。固定タイムスライスについて、ディスクは各プロセスに付与されることはありませんが、セクター数を測定する budget をプロセスに割り当てます。このスケジューラーは大きなファイルをコピーする際に適しており、この場合、システムが応答しなくなることはありません。
kyber
スケジューラーは、ブロック I/O レイヤーに送信されたすべての I/O 要求のレイテンシーを計算することで、レイテンシーゴールを達成するために自身を調整します。cache-misses の場合、読み込み/同期書き込みリクエストにターゲットレイテンシーを設定できます。
このスケジューラーは、NVMe、SSD などの低レイテンシーデバイスなど、高速なデバイスに適しています。