AA_speed_sxc844621.jpg

© sxc.hu

Fast and furios

Systemstart beschleunigen mit Readahead

07.04.2009
Moderne Linux-Distributionen neigen beim Start zur Trägheit. Kleine Helferlein wie Readahead bringen sie wieder auf Trab.

Moderne Betriebssysteme schreiben sich eine möglichst allumfassende Anwenderfreundlichkeit auf die Fahnen. Der Nutzer soll nach Möglichkeit gar nicht mehr mit widerspenstiger Hardware und daraus resultierenden Treiber-Problemen in Berührung kommen. Zudem soll direkt nach dem Systemstart eine komplett vorkonfigurierte Arbeitsoberfläche zur Verfügung stehen. Allerdings hat dieses Ansinnen auch einen gravierenden Nachteil: Durch das Abfangen aller Eventualitäten beim Start laden die Systeme beim Booten eine ganze Reihe unnötiger Treiber und Dienste, die häufig nur Zeit kosten und wertvolle Ressourcen fressen.

Proprietären Betriebssysteme wie Windows Vista versuchen hier mit Hardware-Gimmicks wie "Readyboost" nachzubessern. Für Linux stehen einige freie Softwarepakete zur Verfügung, die den Bootvorgang ohne den Kauf kostspieliger Flashspeicher spürbar beschleunigen. Das kleine Helferlein Readahead [1] ist eines dieser Tools, erfordert aber einige Vorbereitungen. Vor allem Ubuntu, das hier als Beispiel dient, dankt das manuelle Feintuning aber mit einer deutlich schnelleren Bootzeit. Damit das Tool möglichst effizient arbeitet, gilt es jedoch, zunächst die Systemkonfiguration genau zu analysieren und überflüssigen Ballast zu entfernen.

Der SysV-Init-Prozess

Um Ansatzpunkte für eine Beschleunigung des Bootvorgangs zu finden, sollten Sie sich zunächst mit dem Startvorgang von Linux vertraut machen. Nach dem Einschalten des Rechners und dem anschließenden POST (Power On Self Test) des BIOS liest der Bootmanager (Grub oder Lilo) den Bootsektor der ersten Festplatte aus. Findet er die gewünschte Linux-Partition, so lädt er zunächst den Kernel und anschließend – sofern vorhanden – die initiale Ramdisk. Der Kernel identifiziert dabei bereits die Hardware und lädt die passenden Module; fehlen welche, lädt er die benötigten Treiber aus der initialen Ramdisk nach.

Im Anschluss mountet er die Root-Partition und führt das Programm /sbin/init aus. Dieses aktiviert zunächst alle im Verzeichnis /etc/rcS.d (Startup) aufgeführten Skripte und verzweigt danach in das vorgegebene Runlevel-Directory. Aus diesem heraus starten weitere Prozesse, wovon einige aber bald wieder stoppen, da sie nur temporär gebraucht werden oder abhängige Daemons fehlen.

Diesen SysV-Init- oder Init-V genannten Prozess nutzen in ähnlicher Form die meisten Unix-artigen Betriebssysteme. Neben dem Vorteil höchster Stabilität hat diese Technik jedoch den gravierenden Nachteil des sequenziellen Ladens von Prozessen: Ein Prozess startet erst dann, wenn der von ihm abhängige Prozess initialisiert wurde. Dadurch ergeben sich für den Prozessor Warteschleifen, die so genannten Idle-Loops. Deswegen planen die Entwickler von Ubuntu, den SysV-Init-Prozess durch einen neuen Bootprozess namens Upstart abzulösen, haben ihn bislang allerdings noch nicht konsequent in das Betriebssystem implementiert.

Ballast abwerfen

Um herauszufinden, welche Dienste auf dem Rechner laufen, bietet Ubuntu unter dem Menüpunkt System | Systemverwaltung | Dienste eine Übersicht. Sie lässt zwar bereist erste Rückschlüsse auf unnötigen Ballast zu, zeigt jedoch längst nicht alle geladenen Dienste an. Als wesentlich auskunftsfreudiger erweist sich der Boot-Up-Manager, den Sie in den Repositories von Ubuntu finden. Sie installieren ihn mit dem Aufruf sudo apt-get install bum. Danach finden Sie im Menü System | Systemverwaltung den Eintrag BootUp-Manager, mit dem Sie ihn starten.

Nach dem Aktivieren der Checkbox neben Erweitert am linken unteren Rand des Programmfensters zeigt der Boot-Up-Manager Ihnen detaillierte Informationen auch zu den beim Systemstart ausgeführten Prozessen. Sie deaktivieren überflüssige Dienste durch das Entfernen des Häkchens in der Checkbox vor dem Eintrag. Im Reiter Dienste ändern Sie darüber hinaus die Priorität der Prozesse: Das bewirkt, dass sie in der Reihenfolge früher oder später starten. Nach dem Deaktivieren überflüssiger Dienste übernehmen Sie die Änderungen durch das Anklicken des Buttons Anwenden unten links im Programmfenster. Der Boot-Up-Manager entfernt diese dann aus den entsprechenden Runlevel-Verzeichnissen (Abbildung 1).

Abbildung 1: Über den Boot-Up-Manager legen Sie fest, wann welche Dienste mit welcher Priorität starten.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare
Mein Test mit Ubuntu 9.04 Beta
K. R., Dienstag, 07. April 2009 17:37:17
Ein/Ausklappen

Ich habe die Bootzeit ab Grub bis zum Login-Bildschirm gemessen.

Kurz und bündig: Wenn ich beide Augen ganz fest zudrücke, habe ich maximal 1 Sekunde durch Readahead bzw Profile herausgeholt. Wobei ich glaube, dass es sich eher um eine Messungenauigkeit handelt.

Also vor der "Optimierung": 33 Sekunden, nachher 32 Sekunden.

Das kann nun 3 Dinge aussagen:
1) Ubuntu 9.04 ist schon "voroptimiert" (die kürzere Bootzeit gegenüber 8.10 wird auch überall erwähnt)

2) Meine Festplatte kann einfach nicht schneller (Samsung, 250GB)

3) Readahead bringt nur "gefühlt" etwas.

Aber da die Autoren dieses Beitrags Unterschiede gemessen haben, und überall die schnellere Bootzeit vernommen wird, kann es eigentlich nur Punkt 1) sein.


Bewertung: 170 Punkte bei 18 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Mein Test mit Ubuntu 9.04 Beta
Marcel Hilzinger, Dienstag, 07. April 2009 18:12:45
Ein/Ausklappen

Die Festplatte ist tatsächlich in den meisten Fällen die größte Bremse beim Booten. Das zeigen auch meine Tests mit Solid State Disks. Einen Artikel dazu stelle ich morgen noch online.

Interessanterweise ist bei meinen Tests Ubuntu 8.10 durch die SSD nicht schneller hochgefahren, OpenSuse und Moblin hingegen schon. Nicht vergessen darf man zudem, dass Ubuntu ja mit Upstart ein eigenes Bootsystem nutzt, nicht das traditionelle System V Init.


Bewertung: 109 Punkte bei 16 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Mein Test mit Ubuntu 9.04 Beta
K. R., Dienstag, 07. April 2009 18:59:35
Ein/Ausklappen

In dem Artikel steht aber, dass Ubuntu den Einsatz von readahead mit einer kürzeren Bootzeit belohnt.

Aber wie gesagt, kann natürlich an der Optimierung liegen, die Jaunty erhalten hat. Jedenfalls ist das Script "readahead" standardmäßig installiert und aktiviert. Beschreibung laut BUM (BootUp Manager):

readahead: Beschleunigt Systemstart durch früheres Starten von Operationen

readahead-list is an updated and enhanced version of the original readahead utility.
.
It allows the user to specify a set of files to be read into the page cache
to accelerate first time loading of programs, typically during the boot
sequence.



Bewertung: 131 Punkte bei 18 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...