Der Linux Kernel bringt ab 2.6 einen intelligenten IO Scheduler mit. Bisher habe ich mich aber bei meinem „Server“ nicht darum gekümmert. Nachdem aber in meinem Server ein Softraid arbeitet und der cfq Scheduler eingestellt war ist die Last bei viel IO auf der schmalen alten Büchse doch gelegentlich ziemlich nach oben. Daher habe ich den Scheduler mal statt auf cfq auf deadline umgestellt. Das sollte die CPU entlasten. Mal sehen. Hier meine Umstellungsschritte:
- Aktiven Scheduler prüfen:
find /sys 2>/dev/null|grep -i scheduler|xargs -n1 grep -H noop -i /sys/block/sr0/queue/scheduler:noop anticipatory deadline [cfq] /sys/block/sdb/queue/scheduler:noop anticipatory deadline [cfq] /sys/block/sda/queue/scheduler:noop anticipatory deadline [cfq]
- Scheduler zur Laufzeit ändern:
echo "deadline" > /sys/block/sda/queue/scheduler echo "deadline" > /sys/block/sdb/queue/scheduler
- Grub anpassen:
Also „elevator=deadline“ beim entsprechenden Kernel in /boot/grub/menu.lst ergänzen.
Fertig. Mal sehen was die Load dazu sagt.
Übrigens vergesse ich immer wieder den IO Scheduler bei Raidsystemen oder in VMs auf noop zu setzen. Reinste Resourcen Verschwendung …