Login
Newsletter
Werbung

So, 9. Januar 2005, 22:36

Software::Kernel

Patches für automatisches Kernel-Tuning

Jake Moilanen hat eine Serie von Patches für den Linux-Kernel vorgestellt, die eine automatische Anpassung von bestimmten Parametern an die aktuellen Anforderungen ermöglichen.

Die vier Patches verwenden einen einfachen »genetischen« Algorithmus, um Parameter des I/O-Schedulers und des Zaphod CPU-Schedulers automatisch anzupassen. Dazu werden beide Scheduler (ersterer ist für Festplatten zuständig, der zweite für Prozesswechsel) so modifiziert, daß sie eine neue Bibliothek mit dem darin enthaltenen genetischen Algorithmus nutzen. Damit soll die Performance des Kernels gemäß den aktuellen Anforderungen optimiert werden. Der Autor sagt zu dem bisher Erreichten, daß er Verbesserungen von 1-3%, also kaum mehr als die Meßungenauigkeit, in den synthetischen Benchmarks Unixbench und SpecJBB erreicht hat. Er hofft auf die Mitarbeit von Scheduler-Experten, um eine höhere Verbesserung herauszuholen.

Bei der Implementierung der Scheduler gibt es gewisse Freiheitsgrade bei der Einstellung von Parametern. Im Standard-Kernel sind diese meist als Konstanten mit Werten belegt, die in den meisten Fällen gute Performance garantieren. Manche lassen sich auch zur Laufzeit variieren. Eine optimale Einstellung, die alle nur denkbaren Anforderungen abdeckt, kann es jedoch nicht geben, da sich die Anforderungen teilweise nicht miteinander vereinbaren lassen.

Genetische Algorithmen stammen aus dem Bereich des maschinellen Lernens, einem Teilgebiet der Künstlichen Intelligenz. Sie bilden sozusagen den natürlichen Evolutionsprozess nach, indem sie eine »Population« von abstrakten Objekten bilden und dafür sorgen, daß diejenigen, die nach irgendeinem Kriterium »lebensfähiger« sind als andere, sich fortpflanzen, während die anderen aussterben. Bei der Fortpflanzung werden zufällige Mutationen in das »Chromosom« der Objekte eingebaut.

Im Patch von Jake Moilanen entspricht eine Kombination von Scheduler-Parametern solch einem Chromosom, das es durch Evolution zu optimieren gilt. Die Lebensfähigkeit des Systems ist die gemessene Systemleistung. Es wird eine große Zahl von »Individuen« erzeugt. Jedes davon darf eine Zeitscheibe lang im Kernel laufen. Dabei wird gemessen, wie es die Gesamtleistung beeinflusst. Ist jedes einmal gelaufen, wird die schlechtere Hälfte der Objekte durch solche ersetzt, die aus den besseren 50% abgeleitet werden. Danach werden zufällige Mutationen durchgeführt, und der Ablauf beginnt von neuem.

Die experimentellen Patches für Kernel 2.6.9 sind in dem Kerneltrap-Artikel zu finden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung