Rechner von heute sind in der Regel mit schnellen Prozessoren und viel Arbeitsspeicher ausgerüstet. Arbeiten Sie nicht gerade mit speicherintensiven Mega-Applikationen, liegen diese Ressourcen oft brach. Dabei könnten diese helfen, Programmstarts schneller zu machen.
Unter Vista werden diese Techniken bereits unter dem Namen Superfetch eingesetzt. Dabei analysiert das Betriebssystem, welche Programme der Nutzer regelmäßig benötigt, und kann diese anschließend vorbereiten. Wenigen ist aber bekannt, dass dieses Konzept auch unter Linux funktioniert.
Die Lösung heißt Preload und funktioniert so: Die Software ist ein lernfähiger Readahead-Daemon, der im Hintergrund des Systems läuft. Das Programm beobachtet, welche Programme Sie oft benutzen, und legt diese vorab in den Cache. Starten Sie nun zum Beispiel OpenOffice,org, Firefox, Evolution oder Thunderbird, kommen Teile davon direkt aus dem RAM anstatt von der Platte. Somit lässt sich von vornherein nicht verwendeter Speicher gut nutzen.
Installation
Bei vielen Distributionen schlummert der Daemon bereits in den Repositories, vorinstalliert ist er nur selten. Wem kein Preload-Paket zur Verfügung steht, der kann dies jedoch selbst kompilieren; der Quellcode liegt bei Sourceforge.net. Die Ubuntu-Familie stellt das Paket angenehmerweise zur Verfügung. Eine Installation ist denkbar simpel. Entweder Sie benutzen die üblichen Verdächtigen wie zum Beispiel Synaptic oder Adept, oder Sie legen selbst Hand an: sudo apt-get install preload
.
Damit ist auch schon alles erledigt. Nach einer Installation startet sich der Daemon sofort und fängt an, seiner ihm bestimmten Arbeit nachzugehen.
Konfiguration
Der Warnhinweis „Never change a running system“ gilt auch hier: Solange Sie mit der Arbeit von Preload zufrieden sind und der Daemon keine Schwierigkeiten macht, ist keine Veränderung notwendig. Sollten aber Probleme auftreten, hilft es unter Umständen, die Konfiguration zu ändern.
Diese finden Sie wie bei Linux üblich in einer .conf-Datei, im Falle Preload und Ubuntu unter /etc/preload.conf
. Zu jedem Parameter gibt es die dazugehörige Beschreibung. Sensibel ist der Beziehungs-Algorithmus (correlation); hier gehen die Meinungen der Entwickler auseinander. An Parametern wie diesen sollte man wirklich nur im Notfall und dann mit Bedacht schrauben.
:
Interessanter sind die Parameter memtotal
, memfree
und memcached
. Das Programm stiehlt nicht wahllos RAM vom System, dies ist durch eine genaue Formel geregelt. Der maximal verfügbare Speicher für Preload errechnet sich so:
(Speicher Insgesamt * memtotal) + (Verfügbarer Speicher bei Start * memfree) + (Cache-Speicher * memcached)
Wir wollen auch einen Blick auf die Paramter mapprefix
und exeprefix
werfen. Beide Parameter haben dieselbe Syntax und bestimmen im Prinzip, welche Programme der Daemon vorladen darf und welche nicht.
Per Standard sieht unter Ubuntu zum Beispiel so aus: exeprefix = !/usr/sbin;!/usr/local/sbin;/usr;!/
, wobei ein Ausrufezeichen mit „verboten“ gleichzusetzen ist. Steht nichts davor, ist ein Preload erlaubt. In unserem Beispiel wären also ausführbare Dateien in /usr/sbin
, /usr/local/sbin
und /
verbotenes Gelände.
Starten, Stoppen und Überwachen von Preload
Wie bereit erwähnt, müssen Sie nach einer Installation des Ubuntu-Pakets den Daemon nicht händisch starten. Er trägt sich in die Init-Prozessliste mit S95 ein und ruft das Script /etc/init.d/preload
auf. Als Schalter stehen Ihnen die selbsterklärenden Parameter {start|stop|restart|reload|force-reload} zur Verfügung.
Interessant sind außerdem die Dateien /var/log/preload.log
und /var/lib/preload/preload.state
. Wenn Sie sich die erste Datei mittels sudo tail –f /var/log/preload.log
ansehen, bekommen Sie Auskunft über den von Preload benutzten Speicher. Die zweite Datei enthält genauere Informationen zu den einzeln gecachten Dateien.
Geschwindigkeitsgewinn
Nun geht es ans Eingemachte, und wir wollen testen, wie sich Preload auf die Startzeiten von Applikationen auswirkt. Dazu vergleichen wir einfach die Startzeiten der Texverarbeitung von OpenOffice.org. Selbstverständlich haben wir zwischen den einzelnen Tests einen kompletten Neustart durchgeführt, um gleiche Bedingungen zu schaffen. Der Start von oowriter
nahm mit Preload 2,33 Sekunden in Anspruch. Ein Kaltstart des Programms benötigte 3,18 Sekunden. Das ist immerhin ein Geschwindigkeitszuwachs von zirka 27 Prozent.
Danach folgte noch ein handgestoppter Test, in dem der Desktop mit einigen Programmen im Autostart zu tun hatte. Hierzu gehörte OpenOffice.org, Konqueror, K3b, Amarok, Kaffeine, KTorrent und Dolphin. Mit Preload dauerte das Laden aller Applikationen zirka 36 Sekunden. Ohne den Readahead-Daemon brauchte das System 43 Sekunden. Immerhin holt das Vorladen 17 Prozent Geschwindigkeit heraus. Da Preload lernfähig ist und sich selbst optimiert, stellt sich der optimale Geschwindigkeitsgewinn erst mit der Zeit ein.
Weitere Informationen zu Preload
Der Daemon stammt vom Red-Hat-Entwickler Behdad Esfahbod. Ein interessantes Dokument zu Preload ist ebenfalls von ihm und kann hier als PDF-Datei heruntergeladen werden. Das Dokument ist interessant zu lesen. Es erklärt unter anderem die verwendeten Algorithmen und geht genauer auf die Abhängigkeiten sowie vieles mehr ein.
Fazit
Was scheinbare Kleinigkeiten of bewirken können ist schon faszinierend. Preload nimmt nach der Installation gerade mal 176 KByte Festplattenplatz ein, sorgt aber für spürbare Geschwindigkeitsschübe. Selbstverständlich macht das Programm Ihre CPU nicht schneller oder vergrößert die RAM-Riegel des Rechners. Preload optimiert lediglich die brachliegende Ressourcen aus. Allerdings ist die gefühlte höhere Geschwindigkeit des Computers deutlich zu merken.
Wer den Speicher seines Linux-Systems nicht bis zum Anschlag ausnutzt, sollte das Programm auf jeden Fall installieren; Zeit ist schließlich Geld. Auch wenn es jeden Tag nur ein paar Sekunden sind – Kleinvieh macht auch Mist. (mja)