CFQ-Aufzug kann auf Kubuntu 19.04 nicht eingestellt werden

CFQ-Aufzug kann auf Kubuntu 19.04 nicht eingestellt werden

Sie können den CFQ-Scheduler in Kubuntu 19.04 nicht auswählen, da er aus dem 5.0-Kernel entfernt wurde. In meinem Fall brauche ich CFQ, weil es die beste Leistung mit meiner rotierenden Festplatte bietet, wenn ich eine virtuelle Maschine mit Windows 10 als Gast ausführe. Die anderen Scheduler machen das System also unbrauchbar. Kubuntu 19.04 bietet in der Installation standardmäßig nur 2 Aufzüge mq-deadline und keinen, der in meinem Fall eine viel schlechtere Leistung als CFQ bietet.

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

Ich muss es nur mit zwei anderen Schedulern versuchen, die standardmäßig nicht in der Installation angezeigt werden. Diese Scheduler sind BFQ und Kyber.

Als nächstes werde ich beschreiben, wie man die BFQ- und Kyber-Module aktiviert

1) Überprüfen Sie zunächst mit den folgenden Befehlen, ob die Module im System vorhanden sind:

sudo modprobe bfq sudo modprobe kyber-iosched

Wenn kein Fehler aufgetreten ist, können Sie mit dem Befehl überprüfen, ob die Module geladen wurden

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

die zurückkehren müssen

mq-deadline [bfq] kyber none

2) Sorgen Sie dafür, dass diese Module beim Systemstart geladen werden:

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

3) Im nächsten Schritt wird dem System mitgeteilt, welcher Scheduler verwendet werden soll. Anschließend wird eine Datei erstellt, falls sie nicht vorhanden ist:

/etc/udev/rules.d/60-scheduler.rules

mit den folgenden Zeilen

# 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"

Wenn Sie statt BFQ Kyber ausprobieren möchten, ersetzen Sie das letzte Wort der Zeile, in der „bfq“ steht, durch „kyber“.

4) Lassen Sie das System die Änderungen erkennen

sudo udevadm Steuerung --reload; sudo udevadm Trigger

und die Änderungen werden überprüft mit

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

mq-deadline kyber [bfq] none

Fertig.

Quellen:

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

https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136

Antwort1

Abhängig von Ihrer Kernel-Version ist CFQ möglicherweise nicht mehr verfügbar. Es wurde ab Kernel 5.0 entfernt. Dies ist diezugehörige Commit-Gruppe.

Antwort2

Ubuntu 19.04 verwendet den 5.0-Kernel, daher sind CFQ und Deadline nicht mehr verfügbar.

Für die meisten Workloads, sogar auf Festplatten, ist die Verwendung des MQ-Deadline-Schedulers genauso effizient wie die Verwendung eines der alten Scheduler. Nur für Workloads mit ausschließlich sequentiellen Lese-/Schreibvorgängen auf der Festplatte ohne sonstige Störungen sind die alten Scheduler schneller.

Antwort3

Auf einem älteren Laptop mit einer einfachen alten rotierenden Festplatte ist BFQ von entscheidender Bedeutung, um ein reaktionsfähiges System zu haben, während eine andere Aufgabe im Hintergrund auf die Festplatte zugreift. Bisher verwendete der generische Ubuntu-Kernel cfq:

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

Nach dem Upgrade wurde CFQ aus dem Standard-Ubuntu-Kernel entfernt (siehe oben) und ich habe diese Standardeinstellung gefunden:

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

inakzeptabel aufgrund extremer Verzögerungen bei Festplattenaktivität im Hintergrund. Ich gehe davon aus, dass dies auf moderner Hardware mit SDD/NVMe-Massenspeicher ein viel geringeres Problem darstellt.

Wie OP sagt, löst die Umstellung auf BFQ das Lag-Problem.

Marco Gamberoni

verwandte Informationen