Gibt es einen Grund mehr, Prelink zu verwenden?

11

Im Laufe der Jahre habe ich mich mit verschiedenen Linux-Boxen daran gewöhnt, Prelink rituell zu verwenden, um die Ladezeiten von Anwendungen zu beschleunigen.

Die Vorteile der Ausführung von Prelink werden jedoch bei jeder Neuinstallation eines Pakets zunichte gemacht, da alle Abhängigkeiten und Abhängigkeiten neu verknüpft werden müssen.

Diese Vorverknüpfung kann mehrere Probleme verursachen, und eines davon ist die binäre MD5-Ungültigmachung, die problematisch ist, wenn MD5 mit Upstream-Revisionen verglichen wird oder wenn MD5 verwendet wird, um festzustellen, ob die Binärdatei geändert wurde oder nicht, und daher beim Entfernen des Pakets nicht bereinigt werden soll .

In letzter Zeit sind Computer viel schneller geworden, und die Vorteile der Prelink-Vorteile sind jetzt kaum noch bemerkenswert.

Ist die Verwendung von Prelink immer noch ein rationales Konzept oder kann es beiläufig verworfen und als eine vergangene Ära zurückgelassen werden?

Kent Fredric
quelle

Antworten:

4

Sie können es erst am 23. Juli 2009 lesen, wenn Sie LWN.net abonniert haben. Möglicherweise finden Sie jedoch http://lwn.net/Articles/341244/ hilfreich.

David Pashley
quelle
Dann könnten Sie einen "Suscriber Link" zu diesem Artikel bereitstellen.
Wazoox
5
Ich fühle mich immer schlecht für die Verwendung von Abonnentenlinks. Als würde ich sie abreißen oder so.
David Pashley
2
Genau. Es macht mir nichts aus, Abonnentenlinks zu direkten Kontakten (Freunden oder Kollegen) bereitzustellen, wenn ich auf einen interessanten Artikel stoße, aber es fühlt sich falsch an, ihn öffentlich zu veröffentlichen.
Christopher Cashell
1

Ich würde nicht sagen, dass es willkürlich verworfen werden sollte, aber ich würde definitiv sagen, dass seine Verwendung etwas mehr überlegt werden sollte.

Auf einem modernen High-End-Computer, der häufig aktualisiert wird, ist Prelink möglicherweise keine nützliche Optimierung. Es gibt jedoch noch eine Reihe von Fällen, in denen es sich lohnen könnte, sie zu verwenden. Zum Beispiel auf einem älteren oder niedrigeren Computer oder auf Computern, die ziemlich statisch sind und keine häufigen Änderungen oder Aktualisierungen erfahren. Es kann sich auch lohnen, wenn eine hohe Anzahl von Programmen wiederholt ausgeführt wird (ich kann mir einige Situationen vorstellen, in denen Programme möglicherweise schnell hintereinander oder parallel ausgeführt werden, in denen das Vorverknüpfen die Leistung verbessern könnte).

Alles in allem müssen Sie Ihre spezifische Situation berücksichtigen und dann entscheiden, ob der Nutzen die zusätzliche Arbeit und den zusätzlichen Aufwand überwiegt.

Christopher Cashell
quelle
1
"Eine hohe Rate von Programmen, die wiederholt ausgeführt werden" - Wenn Sie sich in dieser Situation befinden, werden die Binärdateien und Bibliotheken in Ihrem Dateisystem-Cache gespeichert. Das einzige Mal, wenn das Vorverknüpfen hilft, ist, wenn Sie so wenig Speicher haben, dass Sie nur sehr wenig Fs-Cache zur Verfügung haben
Daniel Lawson
2
Durch das Vorverknüpfen wird der Programmstart beschleunigt, auch wenn das Programm im Dateisystem-Cache gespeichert ist. Zugegeben, wenn das Programm (und die zugehörigen Bibliotheken) zwischengespeichert werden, ist die Leistungssteigerung weniger spürbar. Abhängig von der Rate der ausgeführten Programme können sich jedoch einige Mikrosekunden summieren, um letztendlich einen Unterschied zu bewirken.
Christopher Cashell
1

Ich würde sagen, Prelink ist definitiv nützlich für Desktop-Server für mehrere Benutzer, wie z. B. LTSP-Server, die in Schulen und Internetcafés verwendet werden. Prelink beschleunigt nicht nur das Laden von Anwendungen, sondern verbessert auch die RAM-Auslastung und das Festplatten-Thrashing aufgrund von Konflikten zwischen Benutzern, sodass viel mehr Benutzer gleichzeitig auf einem Server arbeiten können.


quelle
0

Ich denke, mit den sinkenden Preisen für Speicher wird das Vorverknüpfen weniger nützlich. Wenn Sie die Dinge dennoch etwas beschleunigen möchten, sollten Sie sich mit dem Vorspannen befassen .

Nick Anderson
quelle
Ich habe versucht, vorab zu laden. Ich habe nur festgestellt, dass die Startzeiten dadurch langsamer wurden, während es dort saß und beide Kerne kaute, um das Readahead-Ding zu machen. Und es kann auch aus irgendeinem Grund nicht erkennen, dass X beim Booten gestorben ist. Wenn Sie nicht häufig neu starten, ist das Vorladen überhaupt nicht mehr nützlich.
Kent Fredric
0

Ich überlasse diese Entscheidung der OS-Version. Wenn das Betriebssystem standardmäßig Prelink regelmäßig mit cron aufruft, ist dies möglicherweise nicht so nützlich. Ich hoffe, die Entwickler von Distributionen haben darüber nachgedacht, bevor sie sich dafür entschieden haben, standardmäßig die Prelink-Option hinzuzufügen / zu entfernen. Also gehe ich mit ihnen, anstatt die Dinge selbst noch einmal zu analysieren.

Saurabh Barjatiya
quelle
ähm, es ist nicht wirklich standardmäßig, es ist ein Paket, das Sie installieren müssen, und wenn es nicht installiert ist, erhalten Sie keine vorverknüpften Inhalte. Wenn es installiert ist, erstellt es in der Regel ein Cron-Skript, das standardmäßig deaktiviert ist und das Sie manuell aktivieren müssen.
Kent Fredric
Es ist standardmäßig auf Fedora nicht standardmäßig ausgeschaltet. Es wird auf 19 umgestellt, aber nicht ausgeschaltet. Es ist das gleiche seit Fedora 6 oder 7.
Saurabh Barjatiya
0

Gentoo verwendet Prelink. Sie umgehen das Problem mit md5sum, indem sie die Prelink-Info-Henne ignorieren, die den Hash berechnet.

Prelink gibt Ihnen immer einen Geschwindigkeitsschub, obwohl er mit zunehmender Hardware immer weniger auffällt. Die einzige Möglichkeit, auf Ihrer Hardware sicher zu sein, besteht darin, den Prelink zu deaktivieren und zu sehen, wie Ihnen die Verlangsamung beim Starten der App gefällt.

Nebenbemerkung: OS X hat früher auch eine Form der Vorverknüpfung durchgeführt, die jedoch zugunsten eines verknüpften Caches aufgegeben wurde, den der verknüpfte Cache selbst verwaltet. Das Beste aus beiden Welten, keine binäre Änderung und kein wirklicher Overhead im Vergleich zur normalen Verknüpfung. Ich hoffe, Linux greift diese Idee irgendwann auf :)

Update: Ich habe kürzlich versucht, unter Linux vorzulinken , und für eine Kompilierung von cscope mit vielen Dateien und Prozessen habe ich eine Geschwindigkeitssteigerung von 5% erhalten.

w00t
quelle
1
Es ist nicht wirklich ... es ist immer noch etwas, das Sie installieren und konfigurieren müssen. Ich sage dies, weil ich Gentoo verwende. Und Sie können den Prelink nicht genau "ausschalten", Sie können nur den Prelink beenden oder Ihr gesamtes System vom Prelink trennen. Aus irgendeinem mir unbekannten Grund hat Paludis auch Probleme mit vorverknüpften Binärdateien, und ohne einen rückgängig gemachten (nicht unterstützten) Vorverknüpfungshaken bleiben Binärdateien zurück, was zu Cruft führt. Kürzlich entdeckte ich einige KDE-Apps, die tatsächlich zurückgelassen wurden, bevor ich den Hook installierte, und sie befanden sich auf dem Weg vor den neueren an einem anderen Ort, was zu Seg's führte
Kent Fredric
Möglicherweise ähnelt das Aktivieren der Linker-Optimierung (-Wl, -O1) und die neuen Änderungen in der Gnu-Hash-Zuweisung eher dem, worauf OSX umgestellt hat, was möglicherweise eine effektivere Wahl ist.
Kent Fredric
Ich muss zugeben, dass es eine Weile her ist, seit ich Gentoo verwendet habe ... Ich bin seitdem zu OS X übergegangen :). Ich erinnere mich an einen Test, den ich einmal unter OS X durchgeführt habe: Starten Sie alle Anwendungen auf einmal und zu diesem Zeitpunkt (ca. 1 Minute iirc). Entfernen Sie dann alle Prelink-Informationen und starten Sie alle Apps erneut. Diesmal dauerte es 5 Minuten ... Dies war 2005 auf einem Tower Mac, einem echten Biest.
w00t
1
Als Gegenpol zu Ihrer Vorstellung, dass das Beschleunigen von Vorverbindungen möglicherweise weniger auffällt: Sie werden wahrscheinlich an Bedeutung gewinnen, da Programme bei der Verwendung von zur Laufzeit ladbaren Bibliotheken in die Höhe schnellen. Ein GVIM aus dem Jahr 2009 verwendete 55 Laufzeitbibliotheken. Einer von vor 2 Jahren verwendete 73. 'mount' von 2009 verwendete 7, mount von heute, verwendet 10 mit 4 davon in / usr / lib64 und 6 in / lib64 ... also dehnen sie sich aus, werden größer und breiter . - wie immer - sobald HW schneller wird, wird SW viel komplexer, um den Schub aufzunehmen.
Astara
@astara stimmt, aber das Wachstum der Bibliotheksnutzung ist nicht so schnell wie das Wachstum der Festplatte und der Speichergeschwindigkeit.
w00t