Page 1 of 1

Welchen IO Scheduler wofür?

Posted: 2005-02-05 11:55
by oxygen
Ich wollte mal eine Diskussion zum Thema IO Scheduler lostreten. In der Hilfe zum Kernel steht:
The anticipatory I/O scheduler is the default disk scheduler. It is generally a good choice for most environments, but is quite large and complex when compared to the deadline I/O scheduler, it can also be slower in some cases especially some database loads
The deadline I/O scheduler is simple and compact, and is often as good as the anticipatory I/O scheduler, and in some database workloads, better. In the case of a single process performing I/O to a disk at any one time, its behaviour is almost identical to the
anticipatory I/O scheduler and so is a good choice.
The CFQ I/O scheduler tries to distribute bandwidth equally among all processes in the system. It should provide a fair working environment, suitable for desktop systems.
(siehe: Device Drivers ---> Block devices ---> IO Schedulers)

Standardmäßig wird anticipatory ausgewählt. Jetzt überlege ich, ob ich auf einem reinen MySQL Server mal zu deadline und auf meinem Notebook zu CFQ wechseln soll. Hat das jemand von euch schon gemacht, oder weiß wo es weitere Infos gibt?

Re: Welchen IO Scheduler wofür?

Posted: 2005-02-06 14:29
by thorsten
Schau mal in das aktuelle Linux Magazin, da ist ein mehrteiliger Artikel zu genau diesem Thema.

Folgendes Shellscript kann dir u.U. schon einen Ã?berblick über die Leistungsfähigkeit der unterschiedlichen Scheduler geben:

Code: Select all

#!/bin/bash
# Simples Script zur Messung der Interaktivität der IO-Scheduler
# GPL, (c) 2004 Juergen Quade.

function do_benchmark()
{
  dd if=/dev/zero of=/tmp/foo bs=1M count=7000 &
  echo $1 >$SCHEDULERFILE
  sleep 15
  echo -n "---> $1: "
  time cat /usr/src/linux/kernel/*.c > /dev/null
  # clean up
  echo anticipatory >$SCHEDULERFILE  
  kill -9 $! # kill last background process (dd)
  rm /tmp/foo
}

SCHEDULERFILE='/sys/block/hda/queue/schedule'

do_benchmark noop
do_benchmark anticipatory
do_benchmark deadline
do_benchmark cfq
Das Ergebnis zeigt folgende Reihenfolge (langsamste zuerst)
No-Op, deadline, CFQ, Anticip.

Ich würde mir an deiner Stelle diese Ausgabe (03/05) und auch mindestens die nächste kaufen.
Der Artikel ist extrem interessant - wie die ganze Reihe 'Kern-Technik'

EDIT: oops, hatte doch glatt die Zeile mit der Definition des SCHEDULERFILE vergessen. Nun sollte das Script auch mit der Annahme laufen, dass sowohl /tmp als auch /usr/src/linux auf hda residieren.

Re: Welchen IO Scheduler wofür?

Posted: 2005-02-06 19:10
by oxygen
Danke für den Tipp!

Re: Welchen IO Scheduler wofür?

Posted: 2005-02-06 21:00
by Joe User
/me Thread archivieren...