Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Preload ist ein adaptiver, vorauslesender Dämon. Er beobachtet Anwendungen die ein Benutzer startet, sagt auf Grund einer Analyse dieser Daten vorher, welche Anwendungen Benutzer starten werden und lädt diese Binärdateien und deren Abhängigkeiten in den Speicher, damit sie schneller gestartet werden. Die Geschwindigkeit des Systemstarts wird mit Preload nicht beeinflusst.
Da Preload Arbeitsspeicher benötigt, um den Programmcode zu speichern, sollte das System auf alle Fälle mehr als 1 GB Arbeitsspeicher haben.
Der Geschwindigkeitszuwachs kann bis zu 55 % betragen. Dies ist allerdings nicht gleich nach der Installation feststellbar. Preload braucht ein paar Tage bzw. ein oder zwei Wochen, bis eine verlässliche Statistik erstellt wurde. Diese Statistik nutzt Preload, um den Code der entsprechenden Programme in den Speicher zu laden.
Preload kann direkt aus den Ubuntu-Paketquellen heraus installiert [1] werden.
preload (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install preload
sudo aptitude install preload
In der Regel braucht man Preload nur zu installieren. Das Programm läuft automatisch im Hintergrund und erstellt seine Statistik.
Die Voreinstellungen von Preload können in der Regel so belassen werden. Für eine erweiterte Konfiguration muss die Datei /etc/preload.conf geöffnet und editiert[2] werden. Eine neue Konfiguration muss allerdings ein paar Tage beobachtet werden, da ja erst neue Statistiken erstellt werden.
Folgende Konfigurationen sind im Sektor model
der Konfigurationsdatei möglich:
Sektor model | ||
Option | Standard | Funktion |
cycle | 20 | Bestimmt, wie häufig preload Daten sammeln und Wahrscheinlichkeits-Hochrechnungen des Starts ausführen soll. Es muss hier eine gerade Zahl eingetragen werden. Ein zu geringer Wert reduziert Geschwindigkeit und Stabilität des Systems. |
usecorrelation | true | Bestimmt, ob der Korrelations-Koeffizient berechnet und verwendet werden soll. Es wird derzeit davon ausgegangen, dass dies eine genauere Vorhersage von Programmen ermöglicht, die gestartet werden könnten. |
minsize | 2000000 | Definiert in Byte, ab welcher Mindestgröße eines ausführbereiten Programms dieses in den Arbeitsspeicher geladen werden soll. Ein zu hoher Wert macht preload ineffektiv, ein zu geringer Wert resultiert in hoher Systemlast, da preload mehr Prozesse überwacht. |
memtotal, memfree, memcached | -10, 50, 0 | Berechnungsgrundlage für den Teil des Arbeitsspeichers, der von preload maximal für das Vorladen von Programmen verwendet werden soll. Dies wird anhand der Formel max[0,(TOTAL × memtotal + FREE × memfree)] + CACHED × memcached berechnet. TOTAL , FREE , und CACHED werden aus /proc/meminfo bezogen. |
Folgende spezifische Einstellungen sind im Sektor system
der Konfigurationsdatei möglich:
Sektor system | ||
Option | Standard | Funktion |
doscan | true | Bestimmt, ob die Liste der Prozesse regelmäßig analysiert werden soll. Wenn hier false definiert wurde, wird die Entscheidung darüber, ein Programm vorzuladen, von preload aufgrund der bis zu diesem Zeitpunkt gesammelten Daten vorgenommen. |
dopredict | true | Bestimmt, ob die ermittelten Programme vorgeladen werden sollen. Wenn hier false definiert wurde, werden die ermittelten Programme nicht vorgeladen, sondern die Ergebnisse lediglich in die Datenbank übertragen. |
autosave | 3600 | Bestimmt das Säuber- und Speicherverhalten von preload. Wenn deaktiviert, wird die Datenbank nicht mehr automatisch gesäubert (nicht mehr vorhandene Dateien oder Programme) und nur noch beim Beenden gespeichert. Es wird nicht empfohlen, autosave abzuschalten. |
mapprefix | /opt;/usr/;/lib;/var/cache/;!/ | Bestimmt, aus welchen Verzeichnissen Preload Dateien (bzw. Programme) vorladen soll. /path bedeutet: „Rekursiv ab diesem Verzeichnis“, /path/ bedeutet: „nur dieses Verzeichnis“, !/path bedeutet: „Rekursiv ab diesem Verzeichnis nicht“ und !/path/ bedeutet: „nur dieses Verzeichnis nicht“. Einträge werden mittels Semikolon voneinander getrennt. |
exeprefix | /opt;!/usr/sbin/;!/usr/local/sbin/;/usr/;!/ | Vom Schema her wie mapprefix, allerdings gelten die Einträge hier nicht für ausführbare Dateien generell, sondern nur für Binärdateien. |
maxprocs | 30 | Ermöglicht das gleichzeitige Vorladen. Wenn hier 0 eingestellt wird, wird lediglich ein einzelner Prozess zum Vorladen der Programme verwendet. Gleichzeitiges Vorladen sorgt für eine bessere Systemgeschwindigkeit, zu viele Prozesse mindern die Systemleistung. |
sortstrategy | 3 | Definiert, nach welcher Strategie das Vorladen vorgenommen werden soll: 0 = nicht sortieren; 1 = nach Pfad sortieren; 2 = Nach inode sortieren; 3 = nach Datenblock sortieren. Den Zugriff nach Datenblock zu sortieren, ist die am weitesten entwickelte Methode und wird für die meisten Linux-Dateisysteme empfohlen. |
Ureadahead schreibt Dateien, die beim Systemstart gelesen werden, vor deren Verwendung in den RAM. So können diese Dateien schneller gelesen und so der Systemstart beschleunigt werden. Ureadahead unterscheidet zwischen mechanischen Festplatten und SSDs. Bei mechanischen Festplatten wird zuerst eine Liste aller benötigten Dateien erstellt und gemäß ihrer physikalischen Position sortiert. Diese Dateien werden dann beim nächsten Systemstart der Reihe nach gelesen. Dank der Sortierung läuft der Lesevorgang fortan sequenziell ab, wodurch die Leseköpfe sich weniger bewegen müssen und der Datendurchsatz erhöht wird. Ureadahead und preload wirken kooperativ und behindern sich gegenseitig nicht. Sie können problemlos miteinander eingesetzt werden.
Diese Revision wurde am 9. November 2016 17:46 von jonasjonas erstellt.