1. Was macht ein IO-Scheduler
Der IO-Scheduler verwaltet die Input / Output Zugriffe der Anwendungen auf die Festplatten. Der IO-Scheduler dient zur Organisation der Reihenfolge von Zugriffen, je nach Scheduler wird versucht folgendes zu verbessern:
1. Höherer Datendurchsatz
2. niedrige Zugriffszeit
3. ausgewogenes Antwortverhalten der Anwendungen
2. Welche IO-Scheduler gibt es unter Linux?
1. NOOP Scheduler
Der NOOP-Scheduler ist der einfachste Scheduler, die Daten die zuerst kommen werden als erstes geschrieben. Dieser Scheduler ist für intelligente Hardware gedacht, welche das Scheduling selbst übernimmt.
2. Deadline
Dieser Scheduler sortiert die I/O-Request anhand der Blocknummer der Daten auf der Festplatte. Damit auch Blöcke mit stark abweichenden Blocknummern bearbeitet werden, erhält jeder Request eine maximale Auslieferungszeit.
3. Anticipatory
Dieser Scheduler abeitet ähnlich wie der Deadline Scheduler, allerdings wird eine Statistik zwischen Blöcken und Prozessen erstellt. Durch die Statistiken ist es dem Scheduler möglich zu erahnen, wann der nächste Block von welchem Prozess angefordert wird.
4. Complete Fair Queuing Scheduler (CFQ)
Dies ist der aktuelle Standard Scheduler, er hat einen anderen Ansatz als die anderen Scheduler. Er führt auch eine Block- und Prozessstatistik, benutzt diese allerdings um die Bandbreite „Fair“ an die Prozesse zu verteilen. Durch dieses Verhalten werden zwar keine geringen Antwortzeiten oder hohe Datendurchsätze garantiert, aber alle Anwendungen erhalten ein ausgewogenens Antwortverhalten.
3. Einen IO-Scheduler in Linux einstellen
Um herauszufinden, welche Scheduler möglich sind kann man folgenden Befehl eingeben:
cat /sys/block/<device>/queue/scheduler
Es gibt aktuell die beiden Möglichkeiten den Scheduler einzustellen:
1. IO-Scheduler für alle Blockdevices im Grub einstellen:
kernel /vmlinuz‐2.6.23‐1‐amd64 root=/dev/mapper/system ro elevator=deadline
2. IO-Scheduler während der Laufzeit für jedes Blockdevice einzeln einstellen:
echo noop > /sys/block/<device>/queue/scheduler