ペンドライブ用のLinuxカーネルスケジューラー


4

私はDebian Liveを16 GBのペンドライブで永続的なシステムとして実行しています。これは私の主力システムです。以前は、書き込み速度が遅いために継続的な遅延とフリーズに悩まされていました。ドライブのパーティションを再分割し、パーティションを調整した結果、速度が大幅に向上したように見えますが、I / Oスケジューラの変更が役立つかどうかも疑問に思っています。

締め切りとヌープという2つの候補があるようです。 このページでは締め切りを推奨しているので、変更しました。それは役立ったようですが、印象は純粋に主観的です。ただし、スタックオーバーフローに関するコンセンサスは、フラッシュデバイスにはnoopが最適であると思われます(こちらこちらをご覧ください)。しかし、何もしないスケジューラ、つまりnoopがどのように効率的になるかを理解できません。

私はそれが実際に役立つかどうかを確認するために1週間かそこらの間試してみなければならないだろうと思っているので、私は誰かがより良いアイデアを持っているかどうか尋ねると思いました。

回答:


9

フラッシュデバイスは、操作なしの I / Oスケジューラによって適切に処理される必要があります。それは決定的な答えではありませんが。読み続けます。

機械的なデバイス(HDDなど)は、操作のシークに多くの時間を費やし、ディスクプレート上の正しい位置を見つけて読み取りまたは書き込みを実行します。速度が制限されているメカニカルヘッドを移動することでそれを行います。その速度は非常に速いように見えますが、フラッシュデバイスはこれを必要としないため、設計により高速です。

I / Oスケジューラのタスクは、主にI / O操作をグループ化、並べ替え、可能な場合はマージすることです。主な目的の1つは、必要なシーク操作の量を減らすことにより、シークペナルティを減らすことです。

そのため、NOOPスケジューラは、フラッシュデバイスのほとんどのスケジューラよりも優れています。I / O操作でシークペナルティが発生しないことを念頭に置いて、スケジューラは多くのことを行う必要はありません。少ないほど良い。各I / O操作に必要なCPUサイクルが非常に少ないため、バッテリーにも非常に適しています。

一方、I / Oの枯渇が心配で、システムが過負荷になることはめったにない場合は、DEADLINEが適しています。スケジューラーは、すべてのI / O操作に期限を課します。これは、待ち時間にプラスの影響を与えます。複数のキューを使用して操作を保存し、期限に従って並べ替えます。これらの期限を守ることにより、通常のCPU負荷中にI / Oが不足しないことを保証できます。

結論として、すべてに適合するサイズはありません。すべてのスケジューラには長所と短所があります。私見でできる最善のことは、Noop、Deadline、およびSIOについて読んで、どちらがシナリオに適しているかを見つけることです。また、一定期間テストして、毎日の使用に対する反応を確認することもできます。

最終的に、正確であると思われ、各I / Oスケジューラーの主な利点/欠点をカバーする良いフォーラム投稿を見つけました。


すばらしい回答をありがとう。SIOはDebian Wheezyカーネルには含まれていないようですが、確かではありません。また、フラッシュメディアでの読み取り速度と書き込み速度には大きな違いがあるため、締め切りはnoopよりも良いと感じました(締め切り優先は書き込みよりも読み取りを優先します)。ただし、現時点では、期限に応じてさまざまなパフォーマンスが得られるようです。一方、他の誰かが BFQスケジューラを推奨しています。
ShankarG

私はその期限が私のワークロードのために優れてい、NOOPは、I / Oの飢餓を引き起こし、プロセスがフリーズして行くか、あなたが行うとき、D状態のままI / O並列に集中的な作品...
Sudoer

1
Linuxカーネルが進化するにつれて、I / Oスケジューラーも進化します。« noopに切り替えると、わずかなメリットが得られますが、最近でcfqが非回転ディスク上で正しいことをすべて検出して実行するため、そのままにしておきます。»このスレッドを、質問に関するベンチマークとリファレンスで要約します(別のスケジューラーを使用したもう1つの例:wiki.archlinux.org/index.php/SSD_Benchmarking)。そして、udevを使用してI / Oスケジューラーを自動で切り替えます
tuk0z
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.