Was ist falsch daran, die Windows-Auslagerungsdatei zu deaktivieren?


15

Die Leute sagen, dass Sie immer eine Auslagerungsdatei benötigen und dass dies die Leistung erhöht, aber mein Windows 7 ist so eingestellt, dass es ohne Auslagerungsdatei ausgeführt wird. Ich verstehe einfach nicht, warum die Leute das sagen - ich habe 6 GB RAM, und das einzige Mal, dass mir fast der RAM ausgeht, war das Kompilieren von Chromium, für das ich vorübergehend eine Auslagerungsdatei aktiviert habe.

Brauche ich wirklich eine Auslagerungsdatei *, um die Geschwindigkeit in typischen Situationen zu steigern? Warum?

* Mir ist bewusst, dass Absturzabbilder eine Auslagerungsdatei benötigen. Ich verwende allerdings nie Crash-Dumps, das spielt also keine Rolle.

Antworten:


8

Eine Auslagerungsdatei erhöht niemals die Leistung, beeinträchtigt sie jedoch nicht unbedingt (bei ordnungsgemäßer Speicherverwaltung). Das Ausführen ohne Auslagerungsdatei führt jedoch zu einer höheren Instabilität Ihres Systems in Bezug auf Anwendungen, die Speicher anfordern, der nicht zur Verwendung verfügbar ist.

Sofern Ihr Betriebssystem bei der Speicherverwaltung nicht besonders schlecht ist, sollte eine Auslagerungsdatei mit 6 GB Speicher wenig Verwendung finden. Das soll nicht heißen, dass es überhaupt keinen Nutzen haben wird. IIRC MS Windows ist ein bisschen verrückt, wenn es darum geht, Dinge auszulagern, selbst wenn genügend Speicher verfügbar ist. (Ich werde es nie erfahren.)

Was jedoch passiert, wenn Sie die Auslagerungsdatei nicht verwenden, kann Grund genug sein, sie zu aktivieren: harte Abstürze. Die meisten Apps erwarten, dass sie den angeforderten Speicher erhalten. Wenn sie es nicht tun, stürzen sie ab. (Ah, aber die guten alten Zeiten, in ein paar tausend Bytes leben zu müssen, sind vorbei ... und für allzu viele Entwickler auch die Praxis des Speichermanagements.)

Wenn eine App richtig erstellt wurde, schlägt sie problemlos fehl. (Mit etwas Glück wird es überhaupt nicht scheitern. Aber rechnen Sie nicht damit.) Mit den meisten Apps haben Sie einen fantastischen Fehler in Ihren Händen. Je mehr Apps sich dieser Grenze nähern, desto wahrscheinlicher ist es, dass Sie eine systemweite Instabilität feststellen.

Fall aus eigener Erfahrung. Windows XP, 4GiB, keine Auslagerungsdatei. Perf war großartig. Bis wir uns dem 4GiB-Limit näherten. Dann wurde es wahnsinnig: Apps stürzten ab, Menüelemente wurden nur teilweise (oder gar nicht) angezeigt, Schaltflächen führten zu nichts usw. Ich wechselte zurück zur Auslagerungsdatei, obwohl die Leistung damit schlechter war - die allgemeine Stabilität war einfach besser und wichtiger.

Vielleicht verwenden Sie keine Apps oder arbeiten nicht in Ihren Apps, die 6GiB unterstützen, aber ich kann mir einige Situationen vorstellen, in denen Sie sich näher kommen könnten: Videobearbeitung, Fotobearbeitung, Audiomischen und Produktion usw. - Im Wesentlichen alles, was Sie mit vielen Daten zu tun haben (entweder mit Daten arbeiten oder Daten streamen). Wenn diese Daten Ihre Speicherkapazitäten überschreiten, ist die Wahrscheinlichkeit groß, dass Ihre App einfach "doof" wird.


Einfach ausgedrückt (Ja / Nein): Ist es richtig zu sagen, dass ich keine Leistungssteigerung sehe , wenn ich nie mehr als 2 GB RAM verwende ? Oder gibt es trotz dieser Voraussetzung noch irgendwo eine Einschränkung?
Mehrdad

9
Nein, eine Auslagerungsdatei verbessert niemals die Leistung. Es verbessert nur die Stabilität . Paging ist per Definition eine Operation auf Plattenebene, und Operationen auf Plattenebene sind immer langsamer als Operationen auf RAM-Ebene. Selbst bei 6 GB (nie mehr als 2 GB) treten mit größerer Wahrscheinlichkeit einige Leistungsprobleme auf, da Windows weiterhin frustrierenderweise nicht verwendete Prozesse auf die Festplatte auslagert. Wer das für klug hielt, möchte, dass sie sich schultern!)
Kerri Shotts

Okay. Vielleicht liegt es daran, dass ich es hören wollte, ich weiß es nicht, aber ich mag deine Antwort. : P Klingt ziemlich vernünftig, danke!
Mehrdad

1
Nicht wahr - eine Auslagerungsdatei kann die Leistung verbessern, da der Ort der nicht verwendeten Daten auf dem Swap für das Caching verwendet werden kann. Dies hat eine solche Ablehnung für Sie verursacht.
peterh - Wiedereinsetzung von Monica

1
Die Auslagerungsdatei kann die Leistung verbessern. Es erhöht den verfügbaren Arbeitsspeicher für alle Arten von schnellen Caches und verbessert die Leistung beim Starten, Laden und Betrieb des Programms. Ohne die Auslagerungsdatei wäre dieser wertvolle physische RAM mit nicht entfernbarem Müll gefüllt.
Ark-Kun

7

In diesem Artikel von Mark Russinovich erfahren Sie alles, was Sie schon immer über die Auslagerungsdatei wissen wollten.

Ich weiß nicht, ob "Cache" der richtige Begriff für die Funktion der Auslagerungsdatei ist. Ein Cache ist ein schnell zugänglicher temporärer Speicherort für Daten. Ein Betriebssystem "stört" Dinge an der Auslagerungsdatei, wenn es zu viele Konflikte um physischen RAM gibt. Es ist also eine Lücke für den RAM-Überlauf, um zu verhindern, dass Programme aufgrund von Speichermangel abstürzen. Ich glaube jedoch, dass Windows versucht, Dinge, auf die seit einiger Zeit nicht mehr zugegriffen wurde, in die Auslagerungsdatei aufzunehmen (und Linux tut dies möglicherweise auch), sodass es in diesem Sinne ein Cache ist, aber nicht wirklich seine Hauptfunktion.

Wie auch immer, lies den Artikel. Hier finden Sie gute Richtlinien für die Einstellung Ihrer Auslagerungsdatei. Wie @Sandeep Bansal sagt, kann es gelegentlich vorkommen, dass Sie im Rahmen einer "Anforderungsüberprüfung" eine solche benötigen, um ausgeführt zu werden (aber ich kenne keine).

BEARBEITEN: Dieses Beispiel kann Ihnen helfen, die Rolle der Auslagerungsdatei zu verstehen:

Angenommen, Sie haben 512 MB RAM. Sie haben eine Reihe von Programmen geöffnet, einschließlich eines minimierten Browsers, der 250 MB RAM verbraucht, und die gesamte RAM-Auslastung aller derzeit ausgeführten Programme beträgt 500 MB.

Dann starten Sie ein anderes Programm (z. B. ein Textverarbeitungsprogramm), das 150 MB RAM zuweisen möchte. Zu wenig Speicher. Wenn wir jedoch ein Paging-System haben, können die Speicherseiten, die Ihren minimierten Browser enthalten, auf die Festplatte ausgelagert werden. Dann kann das neue Programm geladen werden.

Angenommen, Sie möchten nach einer Weile wieder zum Browser zurückkehren. Nun, es muss "einblättern", was es gerade auf die Festplatte gesendet hat. Wenn zu diesem Zeitpunkt genügend freier Arbeitsspeicher zur Verfügung steht, kann dies problemlos durchgeführt werden. Ist dies nicht der Fall, muss zuerst etwas anderes ausgelagert werden. Wenn es viele Programme gibt, die um die CPU konkurrieren, und es ständiges Blättern gibt, werden die Dinge langsam und Sie haben den Zustand, der als "Thrashing" bekannt ist. All dieses Ein- und Auslagern führt zu einer geringeren Leistung, vermeidet jedoch, dass Programme aufgrund von Fehlern aufgrund von Speichermangel "hart" abstürzen. Das ist der Zweck der Auslagerungsdatei. Zu viel Paging, dh "Thrashing", ist wahrscheinlich nicht besser als ein Programm, das einfach aufgibt, weil es die meiste Zeit nicht mehr RAM bekommen kann.

Jetzt können Sie sehen, ob es Algorithmen gibt, die vorhersehen, was zu einem bestimmten Zeitpunkt möglicherweise nicht verwendet wird. Dann kann das Betriebssystem Dinge "vorpaginieren", von denen es nicht glaubt, dass sie sofort verwendet werden. Auf diese Weise wird Windows anhand der Auslagerungsdatei berücksichtigt, in der sie vorhanden ist, auch wenn sie über genügend RAM verfügt. Es wird versucht, so viel RAM wie möglich verfügbar zu machen. Windows ist wie Linux, in dem freier Arbeitsspeicher als Festplatten-Cache fungiert. Wenn also der Spagat richtig gespielt wird, kann er zur Gesamtleistung beitragen. Dies alles ist Teil des OS-Designs und deshalb dauert es 10 Jahre, bis Tausende von Programmierern ein gutes Betriebssystem haben.

Um Ihre Frage auch tatsächlich zu beantworten, ist dies das einzige Problem, das beim Deaktivieren der Auslagerungsdatei auftritt. Wenn Sie zu dem Beispiel zurückkehren, das ich bereitgestellt habe, können Sie Ihren Browser ohne die Auslagerungsdatei einfach nicht starten, oder schlecht geschriebene Programme, die nicht defensiv programmiert sind, um OOM-Fehler zu antizipieren, könnten sehr seltsam wirken.


@ultrasawblade: Ich verstehe immer noch nicht: Der Sinn jeder Art von "Cache" ist es , einen Trip auf die Festplatte zu verhindern . Wenn Sie trotzdem dorthin gehen, warum holen Sie sich nicht einfach die Datei, wo immer sie sich befindet? Wozu dient die Auslagerungsdatei?
Mehrdad

@ultrasawblade: Auch in Bezug auf den Artikel: Es sagt in general having [a page file] will mean more usable memory being available to the system. Warte was? Mehr verfügbarer Speicher? Reichen> 3 GiB permanent nicht genutzter RAM-Speicher nicht aus? (Verwirrt, da ich selten mehr als 2 GiB verwende.)
Mehrdad

2
Die Auslagerungsdateien sind NICHT Cache! Wenn Ihr RAM voll wird und Sie trotzdem sicherstellen möchten, dass auf Ihrem System noch mehr RAM verfügbar ist, werden die Daten von RAM auf Ihre Festplatte kopiert (von Prozessen, die anscheinend überlastet sind), sodass Sie immer noch RAM für haben Ihre neuen Prozesse!
verschlang Elysium

2
@ultrasawblade: Der Einwand, den ich gegen Ihre Bearbeitung habe, ist, dass Ihr Beispiel eine RAM-Auslastung von 97% (500/512) angibt, während mein Beispiel eine RAM-Auslastung von 33% angibt (2 GB von 6). Ich habe nicht gefragt, was passiert, wenn ich mich dem Limit nähere. Mir ist bereits klar, welche Probleme das verursacht. Ich habe nachgefragt, was passiert, wenn Sie noch einen langen Weg vor sich haben, in dem kein Prügel oder ähnliches passieren würde (sollte?). Wenn Sie das gleiche Argument für meinen Fall vorbringen können (6 GiB RAM und 2 GiB verwendet), wäre das viel besser. ansonsten geht es einfach nicht auf meine Frage ein.
Mehrdad

3
+1 für den Russinovitch-Link. Da ist die Antwort. Wenn Sie auf einen Sicherheitsmechanismus verzichten möchten, um einen möglichen Absturz zu verhindern, ist dies Ihre Rechtfertigung. Windows funktioniert ohne die Auslagerungsdatei einwandfrei, es sei denn, es entscheidet sich dagegen. ;)
Kara Marfia

2

Eine Auslagerungsdatei dient nicht nur zum Speichern von Absturzabbildern, sondern ist im Wesentlichen auch nicht dafür gemacht.

Die Auslagerungsdatei ist vorhanden, damit sie Daten speichern kann, die nicht im RAM gespeichert werden müssen. Sie ist wie ein Cache für Elemente, die nicht im Arbeitsspeicher vorhanden sein müssen, und bietet somit mehr RAM für andere Dinge.

Sie haben Recht, dass Sie möglicherweise keine Auslagerungsdatei benötigen, wenn Sie über 6 GB RAM verfügen. Für bestimmte Elemente ist jedoch möglicherweise eine Auslagerungsdatei erforderlich. Ich erinnere mich, dass für einige Spiele eine Auslagerungsdatei erforderlich ist. Außerdem kann es hilfreich sein, wenn eine vorhanden ist.

Es schadet nicht, eine 500-MB-Auslagerungsdatei zu erstellen, um Probleme zu vermeiden, wenn ein bestimmter Prozess dies erfordert.


Aber meine Frage ist: Nehmen wir an, ich verwende nie mehr als 2 GB RAM. Erhöht die Aktivierung der Auslagerungsdatei trotzdem die Geschwindigkeit ? ("Es tut nicht weh" unterscheidet sich von "Ja, es gibt Ihnen einen Vorteil".)
Mehrdad

Nun, mit 6 GB RAM werden Sie nichts bemerken, obwohl RAM verfügbar ist, wird die Auslagerungsdatei immer für andere Dinge verwendet. Ich habe 4 GB, nie wirklich darüber hinaus. Aber ich habe eine 1 GB große Auslagerungsdatei, wie es bei normalen PCs der Fall ist, die über 500 GB + Festplattenspeicher verfügen. Mindestens 500-1000 MB sind also kein Verlust
Sandeep Bansal

@ Sandeep: Hm ... was genau sind das für "andere Dinge"? Der Grund, warum ich die Auslagerungsdatei nicht einschalte, ist, dass ich nicht verstehe, warum Windows die Festplatte verwendet, wenn so viel RAM frei ist, und ich bin gespannt, was diese "anderen Dinge" sind.
Mehrdad

Es ist dasselbe wie Linux. Warum verwendet Linux Swap Space, wenn es über RAM für den Zugriff verfügt? Die Auslagerungsdatei enthält Dateien, die über einen bestimmten Zeitraum hinweg nicht mehr verwendet wurden, außerhalb des Arbeitsspeichers.
Sandeep Bansal

@ Sandeep: Ich habe keine Ahnung, warum Linux das auch macht, der gleiche Unterschied für mich. Was bringt es jedoch, Dateien in der Auslagerungsdatei zu speichern? Wenn sie sich nicht im Arbeitsspeicher befinden, lesen Sie sie dann einfach von der Stelle aus, an der sie sich tatsächlich auf der Festplatte befinden.
Mehrdad

1

Der erste Schritt besteht darin, zu verstehen, was ein Cache ist bzw. wofür die verschiedenen Caches verwendet werden.
Die CPU verfügt über einen kleinen internen Cache, in dem OP-Ergebnisse, Flag-Status und berechnete Adressen gespeichert werden können. Auf einem Dual-Core glaube ich, dass der interne Cache etwa 1 MB beträgt. Es ist extrem schnell, nur für die CPU-Interna zugänglich und am härtesten von einer übertakteten CPU betroffen.

Der Level-2-Cache fungiert als Hochgeschwindigkeitspuffer für CPU-zu-Speicher-Transaktionen und enthält auch Code-Threads, die durch Prefetch gesammelt wurden. Auf einem Dual Core würde eine typische Installation 6 MB lvl2-Cache haben. Obwohl der interne Cache-Speicher langsamer ist, ist er sehr schnell und nur für den Speichercontroller und die CPU zugänglich. Er befindet sich auf einer dedizierten Leitung am Bus.

Eine Auslagerungsdatei ist insofern tatsächlich ein Cache, als sie Daten speichert, die im Speicher vorhanden sein können oder nicht. Ein Betriebssystem kann die Auslagerungsdatei für verschiedene Aufgaben verwenden. Eine davon besteht darin, den aktuellen Status einer Datendatei zu speichern, die noch nicht auf die Festplatte übertragen wurde. Wenn eine Auslagerungsdatei nicht vorhanden ist, muss die Drittanbieteranwendung diese Funktionalität intern bereitstellen. Das Problem mit diesem Szenario besteht darin, dass sich viele Programme bei der Garbage Collection nicht richtig verhalten und auf Ihrer Festplatte falsche temporäre Dateien verbleiben. Diese Überreste sind nicht Teil des Installationsmanifests und können einen Deinstallationsvorgang behindern und die Geschwindigkeit des Festplattenzugriffs beeinträchtigen.

Meiner Meinung nach ist eine Auslagerungsdatei normalerweise eine gute Sache. In der Tat, wenn Ihr System stark mit Ram gefüllt ist und nur einer bestimmten Aufgabe zugeordnet ist und diese Anwendung all diese Dinge erledigt, ist möglicherweise keine Auslagerungsdatei erforderlich. Ein Beispiel kann ein Arcade-Videospiel sein, das auf der Windows-Plattform ausgeführt wird. Diese werden normalerweise nur mit den Treibern installiert, die für die vorhandenen Geräte benötigt werden, und es ist unwahrscheinlich, dass Treiberkonflikte auftreten. Die meisten Anwendungen berücksichtigen jedoch nicht alle potenziellen Probleme, die auftreten können, und insbesondere die Probleme, die durch andere Anwendungen von Drittanbietern und durch Treiberkonflikte verursacht werden.

Obwohl Sie beim Hinzufügen einer Auslagerungsdatei kurzfristig einen geringen bis mäßigen Leistungsabfall bemerken, sollte die Leistung langfristig konstant bleiben. Das Fehlen einer Auslagerungsdatei scheint anfangs schneller zu sein, aber mit der Zeit wird sich die Leistung erheblich verschlechtern.

Steven Malm, MCP.


"Wenn eine Auslagerungsdatei nicht vorhanden ist, muss die Drittanbieteranwendung diese Funktionalität intern bereitstellen." -> Nicht ganz sicher, was du meinst; Programme kümmern sich nicht wirklich darum, ob es eine Auslagerungsdatei gibt oder nicht.
Mehrdad

0

Persönliche Erfahrung

Momentan hat mein Laptop mit 8 GB RAM Probleme, die das Erstellen / Verwenden der Auslagerungsdatei verhindern. Mein Leben ist die Hölle. Ich bekomme ständig "Low Memory" -Aufforderungen, Apps stürzen ab usw. Wenn ich 3 Programme verwende, die jeweils 1-1,5 GB aufnehmen (z. B. Webbrowser, Visual Studio mit speziellen Plugins usw.), läuft das auf dünnem Eis.

Ein weiteres Argument

Die Verwendung von Daten aus dem physischen RAM-Cache ist sehr schnell. Je mehr "freier" physischer Arbeitsspeicher Sie haben, desto größer kann der Cache sein. Je mehr ruhende Daten das Betriebssystem vom physischen RAM in die Auslagerungsdatei verschieben kann, desto mehr physischer RAM wird für Caches freigegeben, auf die häufig zugegriffen wird.

Angenommen, Sie spielen ein Spiel, das die Standortdaten lädt, wenn Sie den Standort ändern. Sie haben auch einen laufenden Webbrowser, der beispielsweise 2 GB für das Spiel übrig lässt, was für einen einzelnen Standort ausreicht. Ohne Auslagerungsdatei werden die Daten bei jedem Standortwechsel langsam von der Festplatte geladen. Bei einer Auslagerungsdatei werden Ihre nicht verwendeten Webbrowser-Daten an die Auslagerungsdatei gesendet, und der wertvolle physische RAM wird zum Speichern der Daten für mehrere Speicherorte verwendet, was zu einer viel schnelleren Speicherortauslastung führt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.