IO-Scheduler mit geringer Latenz

IO-Scheduler mit geringer Latenz

Ich habe einige virtuelle Maschinen, auf denen das Cloud-basierte Ubuntu-Image 14.04-1 LTS läuft. Ich wollte die IO-Leistung verschiedener IO-Scheduler auf der VM sehen, also ging ich /sys/block/<drive>/queue/schedulerauf das Gastbetriebssystem, um den IO-Scheduler zu ändern. Normalerweise sollte es cfq, deadline, oder noopzur Auswahl geben. Aber was ich gesehen habe, ist none. Bedeutet das, dass Canonical den I/O-Scheduler im Cloud-basierten Image entfernt hat oder noneist der Scheduler hier der umbenannte noopScheduler? Und was passiert, wenn wir keinen I/O-Scheduler im System haben? Alle IO-Anfragen wurden direkt in FIFO-Reihenfolge an den Host gesendet?

Danke für die Aufklärung!

Antwort1

Ausdieses Debian-Wiki:

IO-Scheduler mit geringer Latenz

(Dieser Schritt ist nicht erforderlich für SSDs, die das NVMe-Protokoll statt SATA verwenden, da diese den herkömmlichen E/A-Scheduler umgehen und blk-mqstattdessen das Modul verwenden.)

Der standardmäßige I/O-Scheduler stellt Daten in eine Warteschlange, um Suchvorgänge auf Festplatten zu minimieren, was bei SSDs nicht notwendig ist. Verwenden Sie daher den "deadline"Scheduler, der nur sicherstellt, dass Massentransaktionen kleine Transaktionen nicht verlangsamen: Installieren sysfsutilsund

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

(passen Sie sdX an Ihre SSD an) Neustart oder

echo deadline > /sys/block/sdX/queue/scheduler

Die Antwort ist also: noneist KEIN Alias ​​für noop. nonebedeutet „der Scheduler wird nicht verwendet“.

Antwort2

Es scheint, dass bei Kerneln >= 3.13 nonekein Alias ​​von noopmehr ist. Es wird angezeigt, wenn derblk-mqE/A-Frameworkim Einsatz ist; dies bedeutet eine vollständige Umgehung der alten Scheduler, da blk-mq(im Moment) überhaupt keine Scheduler zur Auswahl stehen.

In früheren Kerneln noneist wirklich ein schlecht dokumentierter Alias ​​für noop. SieheHierfür mehr Details.

Antwort3

„None“ ist kein Alias ​​für „noop“.

„Keine“ wird angezeigt, da kein Scheduler verwendet wird. SSDs, die das NVMe-Protokoll statt SATA verwenden, umgehen den herkömmlichen E/A-Scheduler.

Antwort4

https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

keine (Multiqueue) Der Multi-Queue-No-Op-E/A-Scheduler. Führt keine Neuordnung der Anfragen durch, minimaler Overhead. Ideal für schnelle Random-E/A-Geräte wie NVME.

verwandte Informationen