Kubuntu 19.04 で CFQ エレベーターを設定できない

Kubuntu 19.04 で CFQ エレベーターを設定できない

CFQ スケジューラは 5.0 カーネルから削除されているため、Kubuntu 19.04 では選択できません。私の場合、CFQ が必要なのは、Windows 10 をゲストとして仮想マシンを実行するときに、回転ハード ドライブで最高のパフォーマンスが得られるためです。他のスケジューラではシステムが使用できなくなります。インストールされた Kubuntu 19.04 は、デフォルトで 2 つのエレベーター mq-deadline のみを提供し、私の場合、CFQ よりもパフォーマンスがはるかに劣るものはありません。

sudo cat/sys/block/sda/queue/scheduler mq-deadline none

デフォルトではインストールに表示されない他の 2 つのスケジューラ、BFQ と Kyber を試す必要があります。

次に、BFQとKyberモジュールを有効にする方法について説明します。

1) まず、次のコマンドを使用して、システムにモジュールが存在することを確認します。

sudo modprobe bfq sudo modprobe kyber-iosched

エラーがない場合は、コマンドでモジュールがロードされているかどうかを確認できます。

sudo cat/sys/block/sda/queue/scheduler

返還しなければならない

mq-deadline [bfq] kyber none

2) システムの起動時にこれらのモジュールをロードします。

sudo -i echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf echo bfq > /etc/modules-load.d/bfq.conf

3) 次のステップでは、どのスケジューラを使用するかをシステムに指示し、ファイルが存在しない場合は作成します。

/etc/udev/rules.d/60-スケジューラ.rules

次の行で

# set cfq scheduler 
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"

BFQの代わりにkyberを試したい場合は、行の最後の単語「bfq」を「kyber」に置き換えます。

4) システムに変更を認識させる

sudo udevadm コントロール --reload; sudo udevadm トリガー

変更は検証され、

sudo cat/sys/block/sda/queue/scheduler

mq-deadline kyber [bfq] none

終了した。

出典:

https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418

https://unix.stackexchange.com/questions/375600/bfq スケジューラを有効にして使用する方法#376136

答え1

カーネルのバージョンによってはCFQがなくなる可能性があります。カーネル5.0で削除されました。これは関連コミットグループ

答え2

Ubuntu 19.04 は 5.0 カーネルを使用するため、CFQ と Deadline は利用できなくなりました。

HDD 上のほとんどのワークロードでも、mq-deadline スケジューラを使用すると、古いスケジューラを使用する場合と同じくらい効率的です。他の干渉がなく、シーケンシャルなディスク読み取り/書き込みのみのワークロードの場合のみ、古いスケジューラの方が高速です。

答え3

従来の回転式ハードディスクを搭載した従来のラップトップでは、バックグラウンドで他のタスクがディスクにアクセスしている間も応答性の高いシステムを実現するために、BFQ が不可欠です。以前は、Ubuntu の汎用カーネルは cfq を使用していました。

    $ zgrep IOSCHED /boot/config-*-generic
    ...
    /boot/config-4.13.0-36-generic:CONFIG_DEFAULT_IOSCHED="cfq"

アップグレード後、標準の Ubuntu カーネルから CFQ が削除され (上記参照)、次のデフォルトが見つかりました。

    $ cat /sys/block/sda/queue/scheduler
    [mq-deadline] none

バックグラウンド ディスク アクティビティがある場合、極端な遅延が発生するため、許容できません。これは、SDD/NVMe 大容量ストレージを備えた最新のハードウェアではそれほど問題にならないと思います。

OP が言うように、bfq に切り替えると遅延の問題が解決します。

マルコ・ガンベローニ

関連情報