2012-02-18 4 views

答えて

12

これらをすべてコンパイルすると、ブート時または使用するデバイスごとにスケジューラを選択できます。コンパイル時に選択する必要はありません。バイト数がすべて含まれる埋め込みデバイスをターゲットにしている場合を除きます。起動時のデバイス単位またはシステム単位の切り替えの詳細については、Documentation/block/switching-sched.txtを参照してください。

CFQスケジューラでは、ionice(1)ツールまたはioprio_set(2)システムコールを使用して優先度を設定できます。これにより、システムのブロックデバイスが比較的アイドルである場合にのみ、いくつかのプロセスに優先権を与えたり、他人に強制的にIOを行わせることができます。キューはsegregating the IO requests from processes into queuesによって実装され、CPUスケジューリングと同様に各キューからの要求を処理します。設定の詳細はDocumentation/block/cfq-iosched.txtにあります。

デッドラインスケジューラは、すべてのプロセスからのすべての書き込みを一度に見ます。セクタ番号で書き込みをソートし、すべてを線形に書き込みます。締め切りとは、期限が切れる前に各ブロックを書き込もうと試みるが、その締め切り以内に、合っていると思われるブロックを自由に並べ替えることを意味する。設定の詳細はDocumentation/block/deadline-iosched.txtにあります。

3

実際にはおそらくほとんどありません。

私のテストでは、巧妙なRAIDコントローラをお持ちの場合、一般的にはNOOPが少し優れていることがわかりました。他の人も同様の結果を報告していますが、あなたの作業負荷は異なる場合があります。

ただし、実行時に(再起動なしで)それらを選択することができますので、コンパイル時に心配する必要はありません。

"賢い"スケジューラ(CFQとデッドライン)は、RAIDコントローラを持たない従来の "回転ディスク"デバイスで本当に役に立ちます。

+0

ノンオペアンプもSSDでうまく動作します – r004

関連する問題