Ubuntu 12.04 Precise Pangolin
Rotierende Festplatten können schnell sequentiell lesen und schreiben, jedoch benötigen sie zum Springen zwischen mehreren Speicherorten vergleichsweise lang. Daher ist es Ziel von e4rat , die Bootzeit und Programmstarts zu beschleunigen, indem die zum Starten benötigten Dateien auf der Festplatte entsprechend ihres Nutzungszeitpunktes umsortiert werden. Zudem lädt e4rat Dateien vor ihrer Nutzung in den Arbeitsspeicher.
Es besteht aus 3 Teilen:
e4rat-collect
- sammelt Informationen über die Nutzungsreihenfolge der Dateien
e4rat-realloc
- ordnet die Dateien auf der Festplatte um
e4rat-preload
- lädt die Dateien, bevor sie genutzt werden
e4rat funktioniert nur mit ext4-Dateisystemen.
Bei von ext2 konvertierten oder verschlüsselten Partitionen kann das Ausführen von e4rat-realloc zu Datenverlusten führen.
e4rat kollidiert in seiner Funktionsweise mit ureadahead. Dieses Programm muss zuerst deinstalliert [2] werden.
Jetzt muss das Debian-Paket von der Sourceforge-Projektseite heruntergeladen und installiert [2] werden.
Fremdpakete können das System gefährden.
Beim jetzt folgenden Neustart muss die Umschalt-Taste gedrückt werden, um in das GRUB-Menü zu gelangen. Dort geht es mit
E zur Veränderung der Bootparameter nur für diesen Systemstart [3]. In der vorletzten Zeile muss init=/sbin/e4rat-collect
hinter „linux“ angehängt werden, damit e4rat für 120 Sekunden Informationen über den Bootvorgang sammelt.
Das beinhaltet auch vom Nutzer gestartete Programme, es ist also sinnvoll, sich genau wie immer zu verhalten.
Die Ergebnisse der Analyse stehen in /var/lib/e4rat/startup.log.
Erst die 120 Sekunden warten und normal verhalten! Die Datei wird erst nach 120 Sekunden erstellt.
Um die Dateien jetzt in die richtige Reihenfolge zu bringen, sollte man in den Single-User-Modus wechseln, um möglichst wenig Dateien zu benutzen, welche dann nicht verschoben werden können. Dazu meldet man sich erst ab, wechselt mit Strg + Alt + F1 in ein Terminal, meldet sich an und führt folgenden Befehl aus:
sudo init 1
Nach einer Weile öffnet sich eine Root-Shell, in welcher man folgenden Befehl ausführt:
e4rat-realloc /var/lib/e4rat/startup.log
Wenn sich Änderungen am Systemstart oder an den nach dem Systemstart gestarteten Programme ergeben oder wenn viele Pakete aktualisiert wurden, kann es sein, dass die Reihenfolge der Dateien auf der Festplatte verändert wurde oder sie in einer anderen Reihenfolge benötigt werden. In diesem Falle muss der Punkt Analyse des Startvorgangs wiederholt werden.
e4rat-preload lädt standardmäßig erst alle Dateien, bevor der Prozess init
gestartet wird, um weitere Programme zu starten. Ein Nutzer von e4rat hat sich des Problems angenommen und e4rat-preload-lite erschaffen, welches erst 200 Dateien lädt, dann init
startet (welches nun von diesen Gebrauch macht) und den Rest parallel weiter lädt. Dadurch können ca. fünf Sekunden eingespart werden.
e4rat-preload-lite liegt nur im Quellcode vor, die Kompilierung [5] gestaltet sich jedoch unproblematisch:
wget http://e4rat-l.bananarocker.org/e4rat-preload-lite-0.1.tar.gz -O - | tar xz cd e4rat-preload-lite-0.1/ gcc --std=gnu99 -o e4rat-preload-lite -O3 e4rat-preload-lite.c sudo cp e4rat-preload-lite /sbin/e4rat-preload-lite
Der Schritt nach dem Hinweis bei der Benutzung muss entsprechend für e4rat-preload-lite geschehen.
Weitere Anpassungen sind durch Verändern der Optionen in e4rat-preload-lite.c möglich.
Die Nutzung von Preload ist dann sinnvoll, wenn es mehrere Nutzer gibt oder sich im Allgemeinen die nach dem Start benötigten Programme ändern. Das liegt daran, dass e4rat-collect immer nur einen Startvorgang analysiert, nicht mehrere, während sich preload dynamisch anpasst.
In diesem Falle sollte sich bis zum Ablauf der 120 Sekunden niemand bzw. nur der Hauptbenutzer anmelden. Alles hinter diesem Zeitpunkt liegt dann im Aufgabenbereich von preload.
Diese Revision wurde am 1. November 2016 19:33 von aasche erstellt.