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