web-dev-qa-db-ja.com

Ubuntu 16.04がすべてのドライブIOスケジューラーを「期限」に設定するのはなぜですか?

Xubuntu 16.04-64bitをラップトップの2番目のパーティションにインストールしました。時々少し遅いように思えたので、そのドライブに使用しているIOスケジューラーを確認しました。これは、すべてのドライブでdeadlineであることが判明しました。 SSDとハードドライブがいくつかあるので、SSDには「期限」が、ハードドライブにはcfqが最適であることを知っています。

別のパーティションで14.04を起動しましたが、cfqを回転ドライブに、deadlineをSSDに使用しています。私はまた、/etc/udev/rules.dを調べて、14.04がドライブのタイプを構成するルールを使用しているかどうかを確認しましたが、実際にはありませんでした。

だから、これがバグなのか、それともすべてに「期限」を使用しているのだろうかと思っています。

更新:/etc/udev/rules.dについて書いたコメントは間違いでした。実際、数年前にSSDを使い始めてから、ローデションの種類に応じてスケジューラを変更するためにudevルールを使用しています(答えは以下のとおりです)。忘れてしまった...とにかく、私が使用したリファレンスの1つは Debian SSD最適化ウィキ でした。

それが含まれていたら、それは良い考えではないでしょうか?ただの提案!

17
curt54

14.04のリリースで、3.13カーネルのデフォルトスケジューラが変更されました CFQからDeadline

個別のサーバーカーネルはなくなり、CFQシェダーは多くのサーバー使用シナリオに適していません。たとえば、 KVM書き込みタイムアウトSBデバイス を使用すると、デスクトップのパフォーマンスが低下します。

6
NGRhodes

Ubuntu Kernel Teamは、さまざまなファイルシステムおよびI/Oスケジューラでさまざまなシミュレートされたワークロードの分析を定期的に実行し、最適な汎用I/Oスケジューラの選択肢を見つけます。一般的な答えは、すべての異なる種類のメディアのすべての異なるタイプのインストールにわたる一般的な構成のための完璧なI/Oスケジューラーの選択はないということです。覚えておくべき重要なポイントは次のとおりです。

  1. システムはSSDに移行しているため、これらには最適な期限または期限が最適です。 noopは、デッドラインよりもCPUオーバーヘッドが少なくなります。

  2. CFQ vs Deadlineは難しい呼び出しです。 CFQは柔軟性を高めます。ただし、シミュレートされたI/O操作の範囲が広い場合、デッドラインはCFQよりも低いレイテンシとわずかに高いスループットを提供することがわかりました。

  3. さまざまなファイルシステムおよびI/Oスケジューラのカーネルを定期的にベンチマークします(各カーネルテストの完了には3日以上かかります)。これおよびその他のさまざまなデータから、情報に基づいて最適な選択を決定しようとします。以下を参照してください。

http://kernel.ubuntu.com/~cking/fs-tests/

すべてのI/Oスケジューラーには賛否両論があるため、デフォルトは完璧ではなく、Ubuntuカーネルチームは、説得力のあるデータと理由がそうでない場合に変更する必要がある場合、常にデフォルトの選択に入力を希望します。

32
Colin Ian King

開発者がdeadlineをデフォルトのスケジューラーとして選択した理由はわかりません。これは、ほとんどの新しいコンピューターにSSDが付属しており、通常はシステムがインストールされているためです。まだインストールしていない場合は、この方法でスケジューラを手動で設定できます... install gksu

ターミナルを開いて実行します:

Sudo apt install gksu  

次に、このコマンドを実行します。

gksudo gedit /etc/udev/rules.d/60-schedulers.rules  

次のテキストを空のファイルに貼り付けて、変更したファイルを保存します。

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  

オペレーティングシステムを再起動すると、HDDとSSDに最適なスケジューラが使用されます。

9
cl-netbox