Vollbildmodus: Seiteninhalt ohne Menus

scheduling und Prozessgruppen

Linux bietet ausgereifte Möglichkeiten Ressourcen mit Prioritäten zuzuweisen. Dafür sind die „scheduler“ (I/O und CPU) verantwortlich die durch die vielen Tools Informationen bekommen wie Ressourcen am effektiv zugewiesen werden sollten.

cgroups

FIXME

I/O-Scheduler

I/O-Scheduler weisen die begrenzten Ressourcen der angeschlossenen Speichersysteme zu.

Um einen bestimmten Scheduler beim Boot zum Standard zu machen muss dem kernel das folgende Argument übergeben werden (am Beispiel deadline): elevator=deadline.

Natürlich geht das auch zur Laufzeit (seit Linux Kernel 2.6.10): Jedem Blockgerät kann über das sysfs 1)ein anderer scheduler zugewiesen werden.

  • mögliche und aktuell eingestellte Werte anzeigen: /sys/block/<device>/queue/iosched, also z.B. für das Gerät sda:
    cat /sys/block/sda/queue/scheduler
    noop anticipatory deadline [cfq]

    Die Ausgabe zeigt dass noop, anticipatory, deadline, und cfq einstellbar sind, wobei die eckigen Klammern die aktuelle Einstellung anzeigen (hier: cfq).

  • Eine Änderung auf deadline ist schnell erledigt:
    echo deadline > /sys/block/sda/queue/scheduler

Mit diesem Shellscript können alle zulässigen Geräte auf den deadline-Scheduler umgestellt werden:

#!/bin/bash
 
scheduler="deadline"
 
if [ "`id -u`" -ne 0 ]; then
	echo you are not root!
	exit 1
fi
 
for dev in /sys/block/*
do
	# show available scheduler for device
	# cat $dev/queue/scheduler
	grep $scheduler "$dev/queue/scheduler" > /dev/null
	if [ $? -eq 0 ]
	then
		echo "setting scheduler $scheduler to $dev."
		echo $scheduler > $dev/queue/scheduler
		# cat $dev/queue/scheduler
	else
		echo "scheduler $scheduler not allowed for $dev. Allowed schedulers are: `cat "$dev/queue/scheduler"`"
	fi
done

NOOP I/O scheduler

FIXME

Anticipatory I/O scheduler

FIXME

Completely Fair Queuing (CFQ) I/O scheduler

CFQ

FIXME

Deadline I/O scheduler

Links

1) falls nicht gemounted:
mount none /sys -t sysfs
 
linux/scheduling-und-prozessgruppen.txt · Zuletzt geändert: 2011/12/06 03:43 von st