Kapitel 4. Ressourcenverwaltung
Der Completely Fair Scheduler (CFS) im Linux-Kernel ist ein proportionaler Anteils-Scheduler, der die CPU-Zeit proportional zwischen Gruppen von Aufgaben verteilt, abhängig von deren Priorität/Gewichtung. Aufgrund der arbeitssparenden Eigenschaft des Schedulers kann in CFS eine Gruppe von Aufgaben einen größeren Anteil der CPU-Zeit erhalten, falls genügend unbenutzte CPU-Zyklen im System zur Verfügung stehen.
- Pay-Per-Use
- In Unternehmenssystemen, die mehrere Kunden bedienen, müssen Anbieter von Cloud-Diensten eine festgesetzte Menge an CPU-Zeit an den virtuellen Gast vergeben, basierend auf dem vereinbarten Service-Level.
- Service-Level-Garantien
- Kunden verlangen einen Prozentsatz der CPU-Ressource ohne Serviceunterbrechung für jeden virtuellen Gast.
Red Hat Enterprise Linux 6 aktivierte Kontrollgruppen in der Standardkonfiguration, und libvirt erstellte eine Kontrollgruppe pro Gastmodell. Auf umfangreichen SMP-Systemen beeinträchtigte eine steigende Anzahl an Kontrollgruppen die Leistung. In Red Hat Enterprise Linux 6.2 dagegen wurde die Kontrollgruppen CPU-Skalierbarkeit wesentlich verbessert, so dass es nun möglich ist, Hunderte von Kontrollgruppen ohne Leistungseinbußen gleichzeitig zu erstellen und auszuführen.
/proc
-Parameter namens dd sysctl_sched_shares_window
hinzugefügt, mit einem Standardwert von 10 ms.
Der Aufbau des Kontrollgruppen I/O-Controllers wurde verbessert, um die Verwendung von Sperren innerhalb des I/O-Controllers zu verringern, was zu einer verbesserten Leistung führt. Zudem unterstützt der I/O-Controller nun Statistiken pro Kontrollgruppe.
Red Hat Enterprise Linux 6.2 verbessert den Speicherverbrauchs-Overhead auf dem Speicher-Controller, indem der Zuweisungs-Overhead für das page_cgroup
-Array um 37% reduziert wurde. Zusätzlich wurde der direkte page_cgroup-to-page
-Zeiger entfernt, was die Leistung des Speicher-Controllers verbessert.
Der Standard für die CFQ group_isolation
-Variable wurde von 0
auf 1
geändert (/sys/block/<device>/queue/iosched/group_isoaltion
). Nach umfangreichen Tests und Benutzerhinweisen konnte festgestellt werden, dass ein Standardwert von 1
sinnvoller ist. Bei der Einstellung 0
werden alle I/O-Queues Teil der Root-Kontrollgruppe, nicht Teil derjenigen Kontrollgruppe, zu der die Applikation gehört. Infolgedessen erfolgt für Applikationen keine Dienstunterteilung.
Anmerkung