Linux
RHEL

【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた

More than 3 years have passed since last update.

無知のため、I/Oスケジューラってなんのこと?状態だったので、

少し調べてみてキュレーションします。

-


I/Oスケジューラって

I/Oスケジューラは、Linuxカーネルの一種。

カーネル 2.6.9 以前は1種類ののみで、コンパイル時に固定化されていた。

カーネル 2.6.10 からはデバイス毎に切り替えることが可能になった(ディスクや用途に応じて…)。

-


カーネル 2.6.17 に組み込まれているスケジューラ



  • noop


    • 何もしないスケジューラ。

    • SSDを使用する場合に、推奨されているらしい。




  • anticipatory


    • 一般的なハードディスクと同等な構造を持つと仮定して、将来の入出力要求を予測したスケジューリングを行う。

    • 要求をある程度貯めるので、多少レイテンシが悪くなることもある。

    • 比較的に低速のハードディスクに推奨される。




  • deadline


    • DB向きのスケジューラ。

    • スループットよりもレイテンシに最適化したスケジューリングを行う。




  • cfq


    • Fedoraのデフォルト。

    • プロセス毎のI/Oキューを持ち、公平なスケジューリングを行う。