Home / LinuxUser / 2010 / 03 / Dalli, dalli!

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Dalli, dalli!

System- und Programmstart beschleunigen

Programmstarts beschleunigen

Während Ureadahead sich hauptsächlich auf das Beschleunigen des Bootvorgangs spezialisiert, sorgt Preload dafür, Applikationen möglichst schnell zu starten. Es lädt wie auch Ureadahead die protokollierten Programme in einer optimierten Reihenfolge in den Page-Cache, womit sie wesentlich weniger Zeit zum Starten benötigen. Preload findet sich zwar in den Ubuntu-Repositories, ist aber noch nicht vorinstalliert. Der Aufruf sudo apt-get install preload richtet es auf Ihrem Rechner ein und startet es danach automatisch.

Auch OpenSuse bringt einen bereits nach der Installation aktivierten Dienst namens Preload [4] mit. Er hat jedoch nichts mit dem hier vorgestellten Projekt gemein, sondern ähnelt in seiner Arbeitsweise eher Readahead.

Zwar steht die hier vorgestellte Variante von Preload auf der Projektseite als Quelltext zum Download bereit, jedoch verwendet der Autor den in OpenSuse unüblichen Installationspfad /usr/local/ um darin neben den Binaries auch die Konfigurationsdateien und Startskripte zu speichern. Zwar lässt sich beim Übersetzen mittels

# ./configure --sysconfdir=/etc --sbindir=/sbin

der Pfad anpassen, was aber nicht viel bringt, da er in den Skripten selbst nicht stimmt. Diese an die Suse-Gegebenheiten anzupassen ist mit erheblichem Aufwand verbunden, und sprengt den Rahmen dieses Artikels. Das Einrichten erledigen Sie mit dem üblichen Dreisatz ./configure, make und sudo make install.

Da der Installer unter Ubuntu auch die notwendigen Runlevel-Skripte anlegt, startet der Daemon direkt beim Booten. Ein Daemon prüft im 20-Sekunden-Rhythmus das System und protokolliert sämtliche Programmstarts. Das Ergebnis schreibt er in die Datei /var/lib/preload/preload.state. Diese Strategie hat jedoch einen kleinen Nachteil: Läuft eine Applikation kürzer als 20 Sekunden, nimmt Preload sie unter Umständen nicht wahr. Wie die meisten Linux-Daemons verfügt auch Preload über eine Konfigurationsdatei, in der Sie diesen und andere Werte anpassen. Sie finden diese unter /etc/preload.conf (Abbildung 2). Ändern Sie die voreingestellten Werte aber nur, wenn es mit diesen zu Problemen kommt.

Abbildung 2: In der Steuerdatei /etc/preload.conf legen Sie unter anderem fest, wie viel Speicher Preload im Höchstfall für sich in Anspruch nehmen darf.

Als wichtigste Parameter finden sich in der Konfiguration die Einstellungen des maximal nutzbaren Speichers. Zwar steht im entsprechenden Abschnitt eine Formel, aus der sich dieser berechnet, jedoch konnten wir die daraus gewonnen Werte nicht nachvollziehen. Einige Versuche sorgten jedoch für Klarheit. In der Grundeinstellung sieht das Programm praktisch den kompletten freien Speicher zum Puffern vor, nutzt jedoch tatsächlich nur zwischen 150 und 200 MByte. Am effektivsten begrenzen Sie den maximal verfügbaren Speicher mit dem Prozentwert hinter memfree. Senken Sie diesen auf beispielsweise 50, halbiert der Dienst nahezu den für ihn verfügbaren Speicherbereich. Um die Änderungen zu übernehmen, starten Sie den Dienst mit dem Aufruf /etc/init.d/preload restart neu.

Um kontinuierlich den aktuellen Status und Speicherverbrauch auszulesen tippen Sie als Nutzer root in der Konsole tail -f /var/log/preload.log. Sie sehen dann in Echtzeit, wieviel Speicher Reload gerade belegt, wie viel er reserviert, und wie viele Dateien er zwischenspeichert (Abbildung 3). Der Konsolenaufruf free -m zeigt Ihnen die aktuelle Speicherbelegung des ganzen Systems an.

Abbildung 3: Die Datei /var/log/preload.log zeigt Ihnen stets den aktuellen Status des Caching-Daemons.

Möchten Sie die Tests auf Ihrem System reproduzieren, löschen Sie im ersten Schritt den Page-Cache als Benutzer root mit dem Aufruf

# sync; echo 3 > /proc/sys/vm/drop_caches

Vergewissern Sie sich, dass keinerlei Preload-Programme laufen, und und messen Sie die Startzeit der Applikation vom Aufruf bis zum vollständigen Aufbau. Löschen Sie unbedingt nach jedem Test den Page-Cache aufs Neue, da anderenfalls Programmfragmente und geladene Bibliotheken das Ergebnis verfälschen können.

Anders als Readahead ist Preload ein relativ schlauer Dienst: Er puffert nicht einfach stur aufgerufene Programme, sondern beobachtet auch die Häufigkeit der Starts. Mit einer Halbwertszeit von einer Woche sinken Applikationen, die in diesem Zeitraum nicht mehr gestartet wurden, in der Prioritätenliste. Damit beugt der Dienst dem Effekt vor, dass Applikationen, die Sie selten verwenden, den Speicher blockieren.

Fazit

Möchten Sie einem lahmenden System auf die Beine helfen, finden Sie mit Ureadahead und Preload zwei potente Programme, die das bewerkstelligen. Mit dem vorausschauenden Laden von Programmen und der geschickten Anordnung der Reihenfolge erzielen Sie unter günstigen Umständen einen Geschwindigkeitsgewinn von bis zu 50 Prozent.

Infos

[1] Ureadahead: https://launchpad.net/ureadahead

[2] Preload: http://www.example.org/folder/

[3] Kernel kompilieren: Peter Kreußel, "Kerngeschäft", Linux-User 06/2006, S. 88, http://www.linux-user.de/ausgabe/2006/06/088-kernel-kompilieren/

[4] OpenSuse-Preload: http://tinyurl.com/lu-os-preload

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zum Autor

Thomas Leichtenstern

Thomas Leichtenstern

CD/DVD-Redakteur


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...