Funktioniert ionice mit dem Deadline Scheduler?

13

Meine Debian Wheezy-Systeme verwenden den deadlineScheduler. Ich bin es gewohnt, ionicedie E / A-Priorität von festplattenintensiven Jobs zu Stoßzeiten neu zu planen, und dies scheint anekdotisch zu helfen (aber ich habe keine konkreten Beweise).

Die ioniceManpage , die Kerneldokumentation und dieses OpenSUSE-Dokument weisen darauf hin, dass nur der cfqScheduler ioniceEingriffe berücksichtigt . Sie geben nicht explizit an, dass andere Scheduler dies ignorieren, aber der einzige, den sie erwähnen, ist cfq.

deadlineArbeiten insbesondere andere Scheduler mit ionice?

Flup
quelle

Antworten:

12

Nein ioniceist ein Mechanismus zur Festlegung von Prioritäten. Aber deadlineignorieren Prioritäten und stattdessen einfach erlegt eine Ablaufzeit für jeden E / A - Betrieb und sorgen dann dafür , dass die Operation erfolgreich , bevor die Ablaufzeit erfüllt ist.

Weitere Informationen finden Sie hier: der Deadline I / O Scheduler

Das Hauptziel des Deadline Schedulers ist es, eine Start-Service-Zeit für eine Anfrage zu gewährleisten. Dies geschieht, indem für alle E / A-Vorgänge eine Frist festgelegt wird, um das Aushungern von Anforderungen zu verhindern. Zusätzlich zu den sortierten Warteschlangen (sowohl Lese- als auch Schreibwarteschlangen) werden zwei Deadline-Warteschlangen verwaltet. Deadline-Warteschlangen werden grundsätzlich nach ihrer Deadline (der Ablaufzeit) sortiert, während die sortierten Warteschlangen nach der Sektornummer sortiert werden.

Vor dem Zustellen der nächsten Anforderung entscheidet der Terminplaner, welche Warteschlange verwendet werden soll. Lesewarteschlangen erhalten eine höhere Priorität, da Prozesse normalerweise Lesevorgänge blockieren. Anschließend prüft der Deadline Scheduler, ob die erste Anforderung in der Deadline Queue abgelaufen ist. Andernfalls verarbeitet der Scheduler einen Stapel von Anforderungen aus der sortierten Warteschlange. In beiden Fällen bedient der Scheduler auch eine Reihe von Anforderungen, die der ausgewählten Anforderung in der sortierten Warteschlange folgen.

Standardmäßig haben Leseanforderungen eine Ablaufzeit von 500 ms, Schreibanforderungen laufen in 5 Sekunden ab.


quelle