Nachteile der Verwendung von Vorspannung? Warum ist es nicht standardmäßig enthalten?

110

Ich möchte wissen, was die Nachteile der Verwendung sind preload? Wenn es keinen Nachteil preloadgäbe , wäre standardmäßig aktiviert, also gibt es wohl einige.

Okay, Sie brauchen ein bisschen mehr RAM, aber die meisten Leute haben bei weitem mehr RAM als Ubuntu - was sind die Nachteile der Verwendung preload?

Paradiesstaub
quelle
6
Vielen Dank für Ihre hilfreiche Frage. Ich möchte wissen, ist es ein Mythos?
Saeed Zarinfam
1
CPU-Auslastung und Batterie könnten ein Nachteil für einige sein ... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
Mateo
1
Gute Frage. Einige Distributionen sind bereits vorinstalliert, wie beispielsweise das grundlegende Betriebssystem (das ist das, was ich auf meinem Laptop ausführe, weil Gala viel schneller ist als Ubuntus Einheit).
1
Nur eine Vermutung: Ein Grund, warum es nicht standardmäßig enthalten ist, ist die Tatsache, dass es nicht auf allen Systemen verwendet werden kann (die Hardwareanforderungen können von den Standardanforderungen abweichen).
don.joey
2
brainstorm.ubuntu.com/idea/1122 Ein Beitrag hier schlägt vor, dass es "als Daemon mit Root-Rechten ausgeführt wird". Was ein Sicherheitsproblem sein kann, gibt es auch dieses Brainstorming, dessen Standardeinbeziehung brainstorm.ubuntu.com/idea/14092
Mateo

Antworten:

65

Preload ist nicht jedermanns Sache. Es ist großartig, wenn Sie Anwendungen oder Bibliotheken häufig öffnen. Es ist schädlich, wenn Sie Anwendungen oder Bibliotheken nur gelegentlich laden. Ich werde zwei Beispiele aus meiner tatsächlichen Verwendung verwenden (und ja, ich verwende Preload).

Erstens Google Chrome. Jetzt wird ein Browser nur einmal pro Boot geöffnet, vielleicht zweimal (für mich bin ich ein Webentwickler). Chrome und die zugehörigen Bibliotheken bleiben im Speicher, da ich sie immer verwende. Selbst wenn ich alle Chromfenster schließe, ist es immer noch im Hintergrund und macht seine Sache. Somit ist der gesamte Speicher, der für das Speichern einer vorinstallierten Kopie von Chrome vorgesehen ist, eine völlige Verschwendung. Es wird nie (oder selten) entladen. Für den durchschnittlichen Benutzer gilt dies für eine große Anzahl von Anwendungen. Ein Office-Benutzer hat fast immer seine E-Mail-App geöffnet. Die geringen Einsparungen bei der Startzeit gehen also völlig verloren, da sie ihre E-Mail-App nur einmal am Tag öffnen und offen lassen.

Das zweite Beispiel ist Rechen. Als Ruby-Entwickler, der an Tests glaubt, führe ich Rake a TON aus. Rechen läuft, wird einige Sekunden lang ausgeführt - Minuten und dann beendet. Preload hilft mir, meine tägliche Arbeit zu beschleunigen, da es Rake und die benötigten Bibliotheken (die sehr umfangreich sein können) im Voraus lädt. Es gibt also viele Starts und Stopps für den Rechenlauf. Der zusätzliche Stößel, mit dem die 400 oder 500 Starts des Rechens innerhalb weniger Stunden beschleunigt wurden, ist es absolut wert.

Der Grund, warum es nicht standardmäßig aktiviert ist, liegt darin, dass seine Fähigkeit, die Leistung tatsächlich zu verbessern, weitgehend davon abhängt, wie Sie Ihr System verwenden. Für einige Leute ist es ein Negativ und für andere ein Positiv.

Wenn Sie die Vorlast eingeschaltet haben, wird auch dann RAM verbraucht, wenn Sie sie nicht verwenden. Wenn Sie also nicht häufig Anwendungen starten, können Sie Ihr gesamtes System geringfügig verlangsamen, indem Sie nicht über diesen RAM für andere Arten von Caching verfügen. Denken Sie daran, auch wenn Sie 32 GB RAM haben, wird Linux versuchen, so viel wie möglich davon zu verwenden, um Daten zwischenzuspeichern und Ihre Interaktion zu beschleunigen. Durch die Verwendung von preload reduzieren Sie den freien Speicherplatz. Selbst wenn es nur ein kleines bisschen ist, können die 2 Sekunden, die Sie beim Starten von Chrome 1 gespart haben, Sie 60 Sekunden in dem Monat kosten, in dem es ausgeführt wird.

coteyr
quelle
1
Die Verwendung von Preload verlangsamt auch das Booten. Je mehr Dateien vorinstalliert sind, desto länger dauert es, bis Ihr System betriebsbereit ist. Stellen Sie sich vor, Sie möchten nur hochfahren, einen Satz in ein Memo schreiben und gleich danach herunterfahren. Sie werden sogar darauf warten, das Memo schreiben zu können, da Ihr System Dinge vorlädt, die höchstwahrscheinlich nichts mit dieser Aufgabe zu tun haben. In gewisser Weise ist das Vorspannen (im Allgemeinen) ein zweischneidiges Schwert.
F-3000,
1
Preload funktioniert nicht wirklich so ... Es gibt dem Kernel Hinweise wie "Hey, lade dies in deinen Cache, während du da bist, ich werde es bald brauchen" und der Kernel tut dies. Das RAM wird also nicht so verwendet, wie Sie es beschreiben. Es können zwei Dinge passieren: Durch das Laden in den Cache werden Anwendungen herausgeschoben, die Sie bald verwenden werden - was zu einem kurzen Einfrieren und einer Festplattenaktivität führt, wenn Sie zur Anwendung zurückkehren.
Hurikhan77
1
Zweitens: Wenn Preload ein falsches Verwendungsmuster vorhersagt (was durchaus der Fall sein kann, wenn Sie ständig Anwendungen geladen haben), werden Inhalte zwischengespeichert, die später wieder aus dem RAM herausgeschoben werden, und der Cache wird wiederum selbst aus dem RAM herausgeschoben, den Sie möglicherweise hatten besser nutzen für. Aber am Ende "verbraucht" es nur RAM, wie es der VFS-Cache tut - es ist also tatsächlich verwerfbarer RAM und somit in gewisser Weise "freier RAM". Es konkurriert jedoch mit dem "normalen Cache", während Sie schreiben.
Hurikhan77
1
Sind Sie angesichts der oben genannten Rückrufe von coteyr und @ hurikhan77 damit einverstanden, dass Preload ein kontraproduktiver Weg ist, um die wahrgenommene Geschwindigkeit bei älteren Desktop-Boxen mit geringem Arbeitsspeicher (~ 800 MB beim Start frei) zu verbessern ? Zur Info: Wenn Sie Preload für solche renovierten Boxen aktivieren, hat der Kernel-Manager für den virtuellen Speicher viel zu tun, um wenig zu verbessern.
Tuk0z
2
@lliseil Wenn die 800 MB wirklich nicht zugewiesener RAM sind, kann das Vorladen helfen ... Aber es funktioniert wahrscheinlich besser mit mehr RAM. Dies bedeutet wiederum: Preload führt zu Konflikten mit speicherintensiven Anwendungen, die Sie möglicherweise später starten. Hier kann es erforderlich sein, die Speicherkapazität zu verringern, wodurch die Vorlast wahrscheinlich unbrauchbar wird, sobald Sie zu viel RAM verwenden.
Hurikhan77
21

Frage von Bountier Saeed Zarinfam am 5. September 2012:

Hallo zusammen, ich möchte wissen, ob es ein Mythos ist. Hat [Vorbelastung] wirklich meine Leistung verbessern? Was sind die Nachteile bei der Verwendung? Ich habe einen Laptop mit dieser Spezifikation (Core i5-CPU, 4 GB RAM, 128 GB SSD-Festplatte). Ich danke dir sehr.

  • Es gibt keine wirkliche Notwendigkeit für Vorspannung , wenn Sie eine SSD
    • Dies liegt daran, dass SSDs viel schnellere Zufallszugriffszeiten bieten als Festplatten. Daher ist das "Vorladen" von Binärdateien / Abhängigkeiten im Speicher eine Verschwendung, IMO
    • Der grundlegende Nachteil ist dann, dass die Vorlast zusätzlichen Speicher "nutzt", ohne einen greifbaren Vorteil zu bieten.
ish
quelle
20
Dies deckt nicht die Frage des OP ab, da es irgendwelche Nachteile bei der Verwendung von Preload gibt. Zweitens haben Sie sich eine Meinung gebildet, eine Aussage zum Thema "Vorladen" gemacht und dann "SSD" in die Gleichung aufgenommen. Wann wollten Sie die Frage eigentlich beantworten?
Ringtail
12

Preload ist ein „adaptiver Readahead-Daemon“, der im Hintergrund Ihres Systems ausgeführt wird und beobachtet, welche Programme Sie am häufigsten verwenden, und speichert sie im Cache, um die Ladezeit von Anwendungen zu verkürzen. Mit Preload können Sie nicht genutzten Arbeitsspeicher für eine gute Arbeit einsetzen und die Gesamtleistung Ihres Desktopsystems verbessern.

Erwarten Sie nicht, dass sich die Leistung sofort drastisch ändert. Auch wenn Sie nur wiederholt Anwendungen öffnen / schließen, speichert Ihr Computer diese Dateien ohnehin im Cache (dies wird als "warmes" Laden bezeichnet), sodass Sie dort keinen Geschwindigkeitsunterschied feststellen können. Sie werden jedoch eine Geschwindigkeitsverbesserung feststellen, wenn Sie beispielsweise ein Programm zeitweise verwenden. Diese Programme starten schneller als ohne Preload.

Preload kann die Startzeit der Anwendung erheblich verkürzen. Da die meisten modernen Maschinen viel Arbeitsspeicher zur Verfügung haben, nutzt Preload diesen Arbeitsspeicher gut aus. 1

Nun scheint es, dass Vorspannung ein großartiges Hilfsprogramm ist, und es könnte sein.

Ich denke, dass der Grund, warum das Betriebssystem nicht vorinstalliert ist, darin besteht, dass der Benutzer genau wissen muss, was er dort tut, über genügend Erfahrung verfügt, um es verwenden zu können, und dass das System über genügend RAM verfügt.

Aus technischer Sicht funktioniert das Pre-Load-Verfahren, indem Daten von der Festplatte in den Arbeitsspeicher verschoben werden. Dadurch wird die meiste Festplatte in den Energiesparmodus versetzt, wenn sie nicht verwendet wird, und muss bei Bedarf neu gestartet werden. Wenn Sie also das Laufwerk hoch- / runterdrehen, steigt die Anzahl der Lade- / Entladezyklen und die Anzahl der Einschaltzeiten, was die Lebensdauer des Laufwerks verkürzt.

Wir haben preload entworfen und implementiert, ein auf Markov basierendes adaptives Prefetching-Schema, das auf Vorhersagen auf Anwendungsebene basiert. Darüber hinaus ist das Preload im Userspace implementiert und ändert die Laufzeitumgebung der Anwendung in keiner Weise. Soweit wir wissen, ist dies die erste Arbeit, die mit dem Prefetching von Dateisystemen auf dieser Ebene experimentiert.

Unsere experimentellen Ergebnisse zeigen vielversprechende Verbesserungen bei der Startzeit der Anwendung im Vergleich zu Cold-Caches und eine anständige Trefferquote im Vergleich zu einem naiven Vorhersagealgorithmus.

Das Vorhandensein im Benutzerbereich führt jedoch zu erheblichen Hindernissen bei der Bereitstellung einer wettbewerbsfähigen Lösung für das Problem der Startzeit. Insbesondere das Fehlen vollständiger Informationen zu den E / A-Anforderungen von Anwendungen und das Fehlen starker Kommunikationskanäle mit dem Page-Cache-Subsystem verschlechtern die Effizienz von preload drastisch, insbesondere unter beengten Speicherbedingungen.

Ein weiteres inhärentes Problem bei der Vorspannungskonstruktion ist die hohe Varianz und die geringe Vorhersagezuverlässigkeit, die durch die relativ lockere Korrelation von Anwendungsstarts verursacht werden. Obwohl wir erfolgreich ein Modell zur Verfolgung von Anwendungskorrelationen erstellt haben, ist es angesichts der Tatsache, dass Anwendungsstarts im Vergleich zum Zeitrahmen, in dem Computer arbeiten, sehr selten, dass ein Prefetch-Schema auf Anwendungsebene über praktisch unendliche Zeiträume hinweg riesigen Prefetch-Speicher beansprucht. Dieser Speicher kann zur Verbesserung des kurzfristigen Cache-Verhaltens verwendet werden.

Abschließend finden wir eine Reihe von Empfehlungen für Systementwickler, wie die Startzeit, die Anmeldezeit und die Startzeit der Anwendung verbessert werden können, ohne auf einen Prefetcher zurückzugreifen, der in das Cache-Subsystem im Kernel integriert ist. Natürlich kann sich ein dateibasierter Prefetcher im Kernel noch verbessern. 2

1 Quelle: Techthrob

2 Quelle: Preload - Ein adaptiver Prefetch-Daemon von Behdad Esfahbod - Eine Dissertation, die in Übereinstimmung mit den Anforderungen für den Master of Science - Graduiertenabteilung für Informatik - Universität von Toronto eingereicht wurde. Copyright (c) 2006 von Behdad Esfahbod.

Mitch
quelle
1
Danke für deine Antwort, Mitch. Das waren auch meine Gedanken. Vor allem auf Laptops könnte die Vorspannung ein Problem sein. Trotzdem würde ich gerne eine offizielle Quelle / Diskussion darüber finden, warum sich das Ubuntu-Team gegen das Versenden von Preloads entschieden hat.
Glutanimate
9

Nachteile? Da sind keine!

Verbesserte Leistung beim Öffnen von Anwendungen durch den Benutzer. Ich habe es jahrelang auf meinen Systemen sowie "read-ahead" verwendet und habe keine Probleme. Die Bug-Seite für das Preload weist ebenfalls keine Nachteile auf.

Preload überwacht die Anwendungen, die Benutzer ausführen, und analysiert diese Daten, um vorherzusagen , welche Anwendungen Benutzer möglicherweise ausführen, und ruft diese Binärdateien und ihre Abhängigkeiten für schnellere Startzeiten im Speicher ab.

Die Startzeit wird zwar geringfügig verlängert, die Abrufzeit für Anwendungen, die langsamer abgerufen werden, übersteigt dieses kleine Problem jedoch bei weitem.

siehe artikel

Wenn Sie häufig verwendete Apps wie Firefox oder Gimp verwenden, werden Sie einige deutlich verbesserte Ladezeiten bemerken. Preload ist ein Daemon, der diskret im Hintergrund läuft und Ihren Desktop in keiner Weise stört. Ubuntu-Benutzer können Preload installieren mit:

sudo apt-get install preload

Ergebnisse:

Grafik zeigt den Unterschied zwischen Normal- und Vorlaststart

ref

Ringtail
quelle
3
Ich weiß, worauf es ankommt und lese einige 'Preload HowTos', aber nirgendwo konnte ich etwas über die Nachteile lesen. Wenn es keine Nachteile gäbe, würde es standardmäßig mit vielen Linux-Distributionen ausgeliefert - aber soweit ich weiß, ist das nicht der Fall.
Paradiesstaub
1
Die Leistung wird nicht verringert , sondern erhöht . Das ist der springende Punkt bei der Verwendung der Vorspannung. Vielleicht ist es nur ein Tippfehler.
Marco
2
Ihr Diagramm sieht gut aus, aber es fehlen wichtige Informationen. Es würde zu 100% in eine PowerPoint-Präsentation eines Vertriebsmitarbeiters passen, ist aber ein Beispiel für „schlechte Statistiken“. Woher kommen diese Zahlen? Welches Protokoll wurde verwendet, um sie aufzuzeichnen? Was ist das für ein Schnappschuss? Wie viele Maschinen waren an der Stichprobe beteiligt? Was war die Hardware? Wie wurde das Preload-Programm konfiguriert?
1
@Ringtail: Du hast recht. Sie sind nicht der Autor dieses Diagramms. Wenn Sie jedoch durch alle Links in den Artikeln klicken, gelangen Sie auf eine Techthrob.com-Seite, auf der sich ein Artikel befinden sollte, der vom Autor des Programms verfasst wurde. Aber diese Seite ist weg. Es gibt also nur eine Quelle: die These des Autors.
2
Man sollte die Hardware aufrüsten, wenn ein Gnome-Terminal mehr als 2 Sekunden braucht, um hochzufahren ...
Peter und der Wolf