Linux bietet mehrere verschiedene I/O-scheduler, welche die Schreib-/Lesevorgänge auf die Festplatte managen. In virtualisierten Umgebungen wird dies jedoch parallel vom Virtualisierungssystem erledigt, so dass doppeltes, aufwendiges I/O-Management eine Performanceeinbuße bedeuten kann.
Welcher scheduler gerade aktiv ist, lässt sich folgendermaßen ermitteln:
# cat /sys/block/DEVICE/queue/scheduler
wobei DEVICE durch die jeweilige Platte zu ersetzen ist, z.B. sda.
Der aktive scheduler steht in eckigen Klammern, standardmäßig ist dies meist [cfq].
Einen Überblick über die verfügbaren scheduler bietet z.B. die Linuxbibel
Um auf den einfacheren noop zu wechseln, geht man folgendermaßen vor:
# echo noop > /sys/block/DEVICE/queue/scheduler
Dies ändert den scheduler zur Laufzeit. Für einen dauerhaften Wechsel, der auch einen Reboot überlebt, fügt man dem Kernelparameter in der entsprechenden Grub-Konfiguration (z.B. /boot/grub/menu.lst) folgenden Eintrag hinzu:
KERNEL .... elevator=noop