Preload: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) K Die Seite wurde neu angelegt: „{{inuse|--~~~~}}“ |
Dirk (Diskussion | Beiträge) init. |
||
Zeile 1: | Zeile 1: | ||
{{ | {{titel|preload}} | ||
Wenn man ein System eben erst gestartet hat, und ein Programm startet, dann dauert dieser Programmstart eine gewisse Zeit. Wenn das Programm durchgelaufen ist, oder man es beendet hat, und man es irgendwann – während das System weiterlief – nochmals startet, startet das Programm ein wenig schneller. Dies ist darin begründet, dass das System die entsprechenden Dateien des Programms (genauer gesagt, den zur ausführung bereiten Programmcode) im Arbeitsspeicher hält. | |||
<code>preload</code> macht genau dies ebenfalls beim Systemstart. Hierzu greift es auf eine Datenbank von Programmen zurück, die durch simples benutzen der Programme generiert wird. <code>preload</code> „lernt“, welche Programme ein Anwender verwendet, und lädt die Dazugehörigen Dateien schon mal vorsorglich in den Arbeitsspeicher. | |||
Da <code>preload</code> aufgrund seiner Funktionsweise Arbeitsspeicher beansprucht, ist es nicht sinnvoll, es einzusetzen, wenn man nur ein Gigabyte hat. Zwei bis Vier Gigabyte RAM sollte man schon mindestens besitzen, um die Vorzüge von <code>preload</code> voll ausschöpfen zu können. | |||
== Installation == | |||
<code>preload</code> ist im „community“-Repository vorhanden, und kann aus diesem mittels [[Pacman]] installiert werden. | |||
pacman -S preload | |||
Da <code>preload</code> ein [[Daemon]] ist, muss er noch in das DAEMONS-Array in der [[rc.conf]] eingetragen werden und nach der installation mittels <code>/et/rc.d/preload start</code> gestartet werden. | |||
== Verwendung == | |||
Man verwendet <code>preload</code> nicht direkt, sondern nutzt sein System ganz normal weiter, wie bisher auch. <code>preload</code> sammelt selbständig im Hintergrund DAten über das nutzungsverhalten und baut seine Programmdatenbank auf. | |||
Nach einigen Tagen bis zwei, drei Wochen is <code>preload</code> so weit, dass man eine deutliche Geschwindigkeitssteigerung beim Erststart von Programmen feststellen kann. | |||
Laut einem Test auf Techthrob.com (siehe Weblinks) beträgt der Geschwindigkeitszuwachs zwischen 23 Prozent beim Login bis hin zu 55 Prozent beim Start von Firefox. Durchschnittlich wird die Erststartzeit von Programmen mit <code>preload</code> um 40 Prozent reduziert. | |||
== Konfiguration == | |||
Die Voreinstellungen von <code>preload</code> sind gut gewählt, und müssen nicht verändert werden, wenn es dafür keinen trifftigen Grund gibt. Will man dennoch die Konfiguration anpassen, son findet man diese in der Datei <code>/etc/preload</code>. Man sollte zudem nach einer Konfigurationsänderung ein paar Tage mit der neuen Konfiguration arbeiten, und beobachten, ob man eine Änderung feststellen kann. | |||
Die Konfiguration gliedert sich in zwei Abschnitte, <code>[model]</code> und <code>[system]</code>. Im Abschnitt <code>[model]</code> befindet sich die Konfiguration des Vorlademodells, nach dem die Programme automatisch in den Arbeitsspeicher geladen werden. Im Abschnitt <code>[system]</code> befindet sich die Eigenkonfiguration von <code>preload</code>. | |||
=== model === | |||
Das Vorladeverhalten von <code>preload</code> hängt von verschiedenen Parametern ab. Gemeinhin sollten die Werte nicht verändert werden, weil sie sinnvoll gewählt werden. Wenn <code>preload</code> nicht vernünftig arbeiten sollte, man also nach ~3 Wochen keine Erststartverkürzung bei häufig genutzten Programmen feststellen kann, sollte man die Optionen in diesem Abschnitt anpassen. | |||
{| {{prettytable}} | |||
|- | |||
! Option | |||
! Standard | |||
! Funktion | |||
|- | |||
| cycle | |||
| 20 | |||
| Bestimmt, wie häufig <code>preload</code> Daten sammeln und Startwahrscheinlichkeits-Hochrechnungen ausführen soll. Es muss hier eine gerade Zahl eingetragen werden. Ein zu geringer Wert reduziert Performance und Stabilität des Systems. | |||
|- | |||
| usecorrelation | |||
| true | |||
| Bestimmt, ob der Korrelationskoeffizient 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 <code>preload</code> ineffektiv, ein zu geringer Wert resultiert in hoher Systemlast, da <code>preload</code> mehr Prozesse überwacht. | |||
|- | |||
| memtotal<br />memfree<br />memcached | |||
| -10<br />50<br />0 | |||
| Berechnungsgrundlage für den von <code>preload</code> für das Vorladen von Programmen maximal Teil verwendbaren Arbeitsspeichers. Dies wird anhand der Formel <code>(TOTAL × memtotal + FREE × memfree) + CACHED × memcached</code> berechnet. <code>TOTAL</code>, <code>FREE</code>, und <code>CACHED</code> werden aus <code>/proc/meminfo</code> bezogen. | |||
|} | |||
=== system === | |||
Neben des im Abschnitt <code>[system]</code> konfigurierten Verhaltens können hier <code>preload</code>-spezifische Einstellungen vorgenommen werden. | |||
{| {{prettytable}} | |||
|- | |||
! Option | |||
! Standard | |||
! Funktion | |||
|- | |||
| doscan | |||
| true | |||
| Bestimmt, ob die Prozessliste regelmäßig analysiert werden soll. Wenn hier <code>false</code> definiert wurde, wird die Entscheidung darüber, ein Programm vorzuladen, von <code>preload</code> aufgrund der bis zu diesem Zeitpunkt gesammelten Daten vorgenommen. | |||
|- | |||
| dopredict | |||
| true | |||
| Bestimmt, on die ermittelten Programme vorgeladen werden sollen. Wenn hier <code>false</code> 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 <code>preload</code>. Wenn deaktiviert, wird die Datenbank nicht mehr automatisch gesäubert (nicht mehr vorhandene Dateien/Programme) und nur noch beim beenden gespeichert. Es wird nicht empfohlen, <code>autosave</code> zu deaktivieren. | |||
|- | |||
| mapprefix | |||
| /opt;/usr/;/lib;/var/cache/;!/ | |||
| Bestimmt, aus welchen Verzeichnissen <code>preload</code> Dateien (bzw. Programme) Vorladen soll. <code>/path</code> bedeutet: „Rekurziv ab diesem Verzeichnis“, <code>/path/</code> bedeutet: „nur dieses Verzeichnis“, <code>!/path</code> bedeutet: „Rekursiv ab diesem Verzeichnis nicht“ und <code>!/path/</code> bedeutet: „nur dieses Verzeichnis nicht“. Einträge werden mittels Semikolon voneinander getrennt. | |||
|- | |||
| exeprefix | |||
| /opt;!/usr/sbin/;!/usr/local/sbin/;/usr/;!/ | |||
| Vom Schema her wie <code>mapprefix</code>, 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 bessere Performance, 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. | |||
|} | |||
== Siehe auch == | |||
* [[Firefox-Profile in Ramdisk auslagern]] – Firefox-Start beschleunigen | |||
* [[Ramdisk]] – Einrichten einer Ramdisk | |||
== Weblinks == | |||
* [http://sourceforge.net/projects/preload/ Offizielle Seite] | |||
* [http://techthrob.com/2009/03/02/drastically-speed-up-your-linux-system-with-preload/ Artikel „Drastically Speed up your Linux System with Preload“ auf Techthrob.com] | |||
[[Kategorie:Systemverwaltung]] | |||
[[Kategorie:Tipps und Tricks]] |
Version vom 14. Juni 2010, 13:17 Uhr
Der richtige Titel für diesen Artikel lautet preload. Dies ist aus technischen Gründen derzeit jedoch nicht möglich.
Wenn man ein System eben erst gestartet hat, und ein Programm startet, dann dauert dieser Programmstart eine gewisse Zeit. Wenn das Programm durchgelaufen ist, oder man es beendet hat, und man es irgendwann – während das System weiterlief – nochmals startet, startet das Programm ein wenig schneller. Dies ist darin begründet, dass das System die entsprechenden Dateien des Programms (genauer gesagt, den zur ausführung bereiten Programmcode) im Arbeitsspeicher hält.
preload
macht genau dies ebenfalls beim Systemstart. Hierzu greift es auf eine Datenbank von Programmen zurück, die durch simples benutzen der Programme generiert wird. preload
„lernt“, welche Programme ein Anwender verwendet, und lädt die Dazugehörigen Dateien schon mal vorsorglich in den Arbeitsspeicher.
Da preload
aufgrund seiner Funktionsweise Arbeitsspeicher beansprucht, ist es nicht sinnvoll, es einzusetzen, wenn man nur ein Gigabyte hat. Zwei bis Vier Gigabyte RAM sollte man schon mindestens besitzen, um die Vorzüge von preload
voll ausschöpfen zu können.
Installation
preload
ist im „community“-Repository vorhanden, und kann aus diesem mittels Pacman installiert werden.
pacman -S preload
Da preload
ein Daemon ist, muss er noch in das DAEMONS-Array in der rc.conf eingetragen werden und nach der installation mittels /et/rc.d/preload start
gestartet werden.
Verwendung
Man verwendet preload
nicht direkt, sondern nutzt sein System ganz normal weiter, wie bisher auch. preload
sammelt selbständig im Hintergrund DAten über das nutzungsverhalten und baut seine Programmdatenbank auf.
Nach einigen Tagen bis zwei, drei Wochen is preload
so weit, dass man eine deutliche Geschwindigkeitssteigerung beim Erststart von Programmen feststellen kann.
Laut einem Test auf Techthrob.com (siehe Weblinks) beträgt der Geschwindigkeitszuwachs zwischen 23 Prozent beim Login bis hin zu 55 Prozent beim Start von Firefox. Durchschnittlich wird die Erststartzeit von Programmen mit preload
um 40 Prozent reduziert.
Konfiguration
Die Voreinstellungen von preload
sind gut gewählt, und müssen nicht verändert werden, wenn es dafür keinen trifftigen Grund gibt. Will man dennoch die Konfiguration anpassen, son findet man diese in der Datei /etc/preload
. Man sollte zudem nach einer Konfigurationsänderung ein paar Tage mit der neuen Konfiguration arbeiten, und beobachten, ob man eine Änderung feststellen kann.
Die Konfiguration gliedert sich in zwei Abschnitte, [model]
und [system]
. Im Abschnitt [model]
befindet sich die Konfiguration des Vorlademodells, nach dem die Programme automatisch in den Arbeitsspeicher geladen werden. Im Abschnitt [system]
befindet sich die Eigenkonfiguration von preload
.
model
Das Vorladeverhalten von preload
hängt von verschiedenen Parametern ab. Gemeinhin sollten die Werte nicht verändert werden, weil sie sinnvoll gewählt werden. Wenn preload
nicht vernünftig arbeiten sollte, man also nach ~3 Wochen keine Erststartverkürzung bei häufig genutzten Programmen feststellen kann, sollte man die Optionen in diesem Abschnitt anpassen.
Option | Standard | Funktion |
---|---|---|
cycle | 20 | Bestimmt, wie häufig preload Daten sammeln und Startwahrscheinlichkeits-Hochrechnungen ausführen soll. Es muss hier eine gerade Zahl eingetragen werden. Ein zu geringer Wert reduziert Performance und Stabilität des Systems.
|
usecorrelation | true | Bestimmt, ob der Korrelationskoeffizient 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 von preload für das Vorladen von Programmen maximal Teil verwendbaren Arbeitsspeichers. Dies wird anhand der Formel (TOTAL × memtotal + FREE × memfree) + CACHED × memcached berechnet. TOTAL , FREE , und CACHED werden aus /proc/meminfo bezogen.
|
system
Neben des im Abschnitt [system]
konfigurierten Verhaltens können hier preload
-spezifische Einstellungen vorgenommen werden.
Option | Standard | Funktion |
---|---|---|
doscan | true | Bestimmt, ob die Prozessliste 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, on 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/Programme) und nur noch beim beenden gespeichert. Es wird nicht empfohlen, autosave zu deaktivieren.
|
mapprefix | /opt;/usr/;/lib;/var/cache/;!/ | Bestimmt, aus welchen Verzeichnissen preload Dateien (bzw. Programme) Vorladen soll. /path bedeutet: „Rekurziv 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 bessere Performance, 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. |
Siehe auch
- Firefox-Profile in Ramdisk auslagern – Firefox-Start beschleunigen
- Ramdisk – Einrichten einer Ramdisk