[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [sourceforge:preload:Preload] {en} 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. = Installation = Preload kann direkt aus den Ubuntu-Paketquellen heraus installiert [1] werden. {{{#!vorlage Paketinstallation preload, universe }}} = Benutzung = In der Regel braucht man Preload nur zu installieren. Das Programm läuft automatisch im Hintergrund und erstellt seine Statistik. = Konfiguration = 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: {{{#!vorlage Tabelle <-3 rowclass="titel"> 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: {{{#!vorlage Tabelle <-3 rowclass="titel"> 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. }}} = Vergleich zu ureadahead = 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. = Links = * [:Tuning:] - Hinweise zum "Tuning" von Ubuntu #tag: System, Tuning