Sollte ich die Auslagerungsdatei deaktivieren, wenn ich viel RAM habe, oder sollte ich sie auf ein virtuelles RAM-Laufwerk verschieben?

97

Stellen Sie sich vor, ich habe Tonnen von RAM. Sagen wir 64GB. Das ist auch für Gaming-PCs eine Menge. Jetzt befindet sich der Standardspeicherort einer Auslagerungsdatei in Windows auf dem Hauptlaufwerk des Betriebssystems, sei es Festplatte oder SSD, die im Allgemeinen schneller sind, aber immer noch nicht so schnell wie RAM.

Irgendetwas sagt mir, dass das Deaktivieren der Auslagerungsdatei auf der Festplatte oder das Erstellen eines virtuellen RAM-Laufwerks und das Zulassen der Auslagerungsdatei dazu führen kann, dass Windows den gesamten virtuellen Speicher in den Arbeitsspeicher verschiebt und so die Systemleistung erhöht Bereich, so könnte das überhaupt nicht wahr sein.

Ich habe beides ausprobiert, aber ich konnte die Ergebnisse nicht analysieren, um mit meinem Wissensstand über Erinnerungssachen zu einer endgültigen Schlussfolgerung zu gelangen.

Würde das funktionieren? Wenn nein, warum?

user1306322
quelle
57
Wenn Sie eine Auslagerungsdatei auf einer RAM-Disk haben, wird nichts erreicht. Sie nehmen eine bestimmte Menge an verfügbarem Speicher weg und fügen eine bestimmte Menge an virtuellem Speicher hinzu. Nullsumme. Habe nur keine Auslagerungsdatei.
USR
14
Sinnvoll ist dies unter Linux in einigen Fällen, in denen die RAM-Festplatte, auf der sich die Auslagerungsdatei befindet, tatsächlich komprimiert ist. Siehe: en.wikipedia.org/wiki/Zram . Ich glaube jedoch nicht, dass Windows über eine solche Funktion verfügt.
Matt H
2
Die Antwort lautet ja, aber es gibt viele Ungläubige.
Mehrdad
14
@ user367257 Wenn Sie eine RAM-Disk erstellen, auf der Ihre Auslagerungsdatei gespeichert werden soll, leihen Sie Ihrem Freund 10 Euro, damit er genug Geld hat, um 10 Euro von ihm auszuleihen. Es mag technisch möglich sein, aber alles, was Sie erreicht haben, ist, eine Reise ins Nirgendwo unnötig zu erschweren.
Rob Moir
2
Ich würde es nur für eine SSD ausschalten (und tun), da Sie nur so viele Schreibvorgänge erhalten (auch wenn es jetzt viel ist), mit 6 GB. Es funktioniert gut.
Ry

Antworten:

134

Egal wie viel RAM Sie haben, Sie möchten, dass das System es effizient nutzen kann. Wenn überhaupt keine Auslagerungsdatei vorhanden ist, wird das Betriebssystem aus zwei Gründen gezwungen, den RAM ineffizient zu verwenden. Erstens können Seiten nicht verworfen werden, selbst wenn sie über einen sehr langen Zeitraum nicht mehr aufgerufen oder geändert wurden, wodurch der Festplatten-Cache kleiner wird. Zweitens muss physischer Arbeitsspeicher reserviert werden, um Zuordnungen zu sichern, für die es sehr unwahrscheinlich ist, dass sie jemals erforderlich sind (z. B. eine private, modifizierbare Dateizuordnung). Dies führt zu einem Fall, in dem Sie über ausreichend freien physischen Arbeitsspeicher verfügen können, für den Zuordnungen jedoch verweigert werden Überbeanspruchung vermeiden.

Angenommen, ein Programm erstellt eine beschreibbare Zuordnung des privaten Speichers einer 4-GB-Datei. Das Betriebssystem muss 4 GB RAM für diese Zuordnung reservieren, da das Programm möglicherweise jedes Byte ändern könnte und es nur RAM zum Speichern gibt. Daher werden sofort 4 GB RAM verschwendet (es kann verwendet werden, um saubere Datenträgerseiten zwischenzuspeichern, aber das war's auch schon).

Sie benötigen eine Auslagerungsdatei, um das Beste aus Ihrem Arbeitsspeicher herauszuholen, auch wenn dieser niemals verwendet wird. Es ist eine Versicherungspolice, die es dem Betriebssystem ermöglicht, den vorhandenen Arbeitsspeicher tatsächlich zu nutzen, anstatt ihn für außerordentlich unwahrscheinliche Möglichkeiten reservieren zu müssen.

Die Leute, die das Verhalten Ihres Betriebssystems entworfen haben, sind keine Narren. Wenn Sie eine Auslagerungsdatei haben, hat das Betriebssystem mehr Auswahlmöglichkeiten und es werden keine schlechten Entscheidungen getroffen.

Es hat keinen Sinn, eine Auslagerungsdatei in den Arbeitsspeicher zu verschieben. Und wenn Sie über viel RAM verfügen, ist es sehr unwahrscheinlich, dass die Auslagerungsdatei verwendet wird (sie muss nur vorhanden sein), sodass es keine Rolle spielt, wie schnell das Gerät ist, auf dem sie sich befindet.

David Schwartz
quelle
9
Ich habe der Gegenstimme widersprochen. Aber zu deinem letzten Kommentar: Ich starte 2 verschiedene Maschinen ohne Tausch. Es ist vollkommen in Ordnung, wenn Sie genau wissen, wie die Maschine benutzt wird.
Spudone
6
Ich vermute, dass die Auslagerungsdatei in einem RAM-Laufwerk als "Workaround" für den Frachtkult begann, weil einige Software den Start ablehnt, wenn sie feststellt, dass keine Auslagerungsdatei vorhanden ist. (Mir wurde gesagt, dass die Grafik- / Videotools von Adobe dies tun.)
Dan Neely
8
@DavidSchwartz Die von Ihnen angegebenen Informationen sind technisch korrekt und es sind gute Informationen zu wissen. Aber die Schlussfolgerung, dass Sie zu dem Schluss kommen, dass Sie immer eine Auslagerungsdatei haben sollten, unabhängig davon, wie viel RAM Sie haben, ist nicht richtig, und ich stehe zu meiner Behauptung, dass dies nicht die akzeptierte Antwort sein sollte.
Jason Wheeler
5
Ich mag es einfach nicht hören , dass „Auslagerungsdateien Magie sind so nicht drehen sie ab oder du wirst es bereuen“ , wenn ich weiß , dass unter vielen gewöhnlichen Umständen , dass Sie können sie ausschalten, und sicher eine Verbesserung der Leistung , weil Sie erhöhen die Festplatten-E / A nicht mehr um 100% oder mehr, wenn die MMS etwas tun möchte. Alles, was ich von den Leuten auf der anderen Seite dieser Debatte hören möchte, ist "Ja, es gibt Umstände, unter denen Sie sie ausschalten und die Datenträger-E / A reduzieren können, was zu Thrashing führen kann". Ich sage nicht, dass Auslagerungsdateien immer schlecht sind, vielleicht können Sie sagen, dass sie nicht immer notwendig sind.
Fred Hamilton
5
Mir wurde klar, dass die eine Seite zu sagen scheint, "Auslagerungsdateien tun nie etwas anderes als Gutes", und die andere Seite ist "Auslagerungsdateien sind schrecklich", und dann haben sich die Leute auf der einen oder anderen Seite festgesetzt. Die "Wahrheit" ist, dass sie in einigen Fällen sehr nützlich sind und sogar Abstürze verhindern. In anderen Fällen werden sie nicht benötigt und können tatsächlich zu Leistungseinbußen führen. Trotzdem bin ich damit als meine letzte Aussage zufrieden. Lebe lange und gedeihe, @David Schwartz.
Fred Hamilton
32

Sie haben völlig recht mit Ihrer Annahme.

Speicherverwaltungsalgorithmen sind sehr komplex und keineswegs perfekt. Das Austauschen erfolgt also auch dann, wenn genügend freier Arbeitsspeicher vorhanden ist. Auf einigen Systemen können LinuxSie beispielsweise die Austauschbarkeit steuern , auf anderen nicht. Durch das Austauschen von Daten, wenn noch genügend RAM vorhanden ist, bereitet sich das System auf seine eigene Weise auf die Situation vor, in der möglicherweise kein RAM mehr zur Verfügung steht.

Das Deaktivieren der Auslagerungsfunktion kann zu einer Leistungsverbesserung führen, da Sie nur den RAM verwenden, der schneller ist, als Sie bereits gesagt haben.

Eine Sache, die Sie berücksichtigen sollten (und die Sie bereits erwähnt haben): Sie müssen über genügend Arbeitsspeicher verfügen , um alle von Ihnen ausgeführten Programme aufnehmen zu können. Andernfalls besteht die Gefahr, dass Ihnen der Arbeitsspeicher ausgeht . In diesem Fall sinkt die Leistung, einige Prozesse werden möglicherweise vom Betriebssystem beendet und das System kann abstürzen / einfrieren. (Lesen Sie mehr darüber hier )

Auf einigen Computern, insbesondere solchen, die die Auslagerungsdatei auf der Festplatte und nicht auf der SSD speichern, ist der Effekt des Deaktivierens der Auslagerungsfunktion sehr deutlich. Bei anderen ist es nicht so offensichtlich. Aber auch wenn Sie keine offensichtliche Verbesserung erzielen, denken Sie anders darüber nach. Durch Deaktivieren des Austauschs sparen Sie Speicherplatz auf Ihrer SSD.

Durch Deaktivieren der Auslagerung verhindern Sie außerdem, dass Speicheralgorithmen unnötige Vorgänge ausführen - Verschieben von Daten vom RAM zum Auslagerungsspeicher und umgekehrt - im Falle einer SSD wird ein übermäßiger Verschleiß verhindert. In jedem Fall wird dadurch die Leistung verbessert, indem unnötige Vorgänge vermieden werden.

Lesen Sie auch:

Art Gertner
quelle
2
@ ChrisH Sie könnten wahrscheinlich auch keine SQL-Datenbank in ein Textverarbeitungsprogramm laden, da diese vollständig im RAM ausgeführt werden :-)
TylerH
9
Diese Antwort ist falsch und enthält viele Fehlinformationen. Der einfache Weg, um zu erkennen, warum dies falsch ist, besteht darin, dass die Personen, die das Speicherverhalten Ihres Betriebssystems entwickelt haben, wahrscheinlich zu den intelligentesten Personen der Welt gehören. Warum sollten sie ein System so konzipieren, dass es die Leistung verschlechtert, wenn sie ihm mehr Optionen bieten (die Option zum Tauschen, wenn und nur wenn sie dies für am besten hält)? Nur ein Idiot würde ein solches System entwerfen.
David Schwartz
17
@DavidSchwartz, ich verstehe nicht, dass die Tatsache, dass Leute, die Speicherverwaltungsalgorithmen entwickelt haben, klug sind, einen Unterschied zum ursprünglichen Thema macht. OP hat gefragt, ob das Deaktivieren des Austauschs die Leistung verbessern kann, und ich habe erklärt, dass dies unter bestimmten Bedingungen möglich ist und unter anderen Bedingungen zu Problemen führen kann. Beantwortung Ihrer Frage, warum (?) - Ich kann sagen, weil Algorithmen nicht perfekt sind und es dem Benutzer überlassen ist, sie zu verfeinern. Aus diesem Grund gibt es in Linux einen swappiness-Parameter und aus diesem Grund ist das Deaktivieren von swapping überhaupt möglich.
Art Gertner
11
@smc Der Anwendungsfall des OP ist nichts Ungewöhnliches. Die Vorstellung, dass Betriebssysteme nicht richtig auf die Standardanwendungsfälle abgestimmt sind, ist völliger Unsinn. (Weitere Informationen dazu, warum Sie dies nicht tun möchten, finden Sie in meiner Antwort.)
David Schwartz
4
Die Annahme, dass ein gegebener Algorithmus immer eine für den Benutzer wünschenswerte Entscheidung trifft, ist absolut falsch. Sie treffen Entscheidungen auf der Grundlage festgelegter Parameter, für die sich die Programmierer entschieden haben, dass sie wichtig sind. Dies könnte in direktem Widerspruch zu dem stehen, was ein Benutzer haben muss.
Anaksunaman
14

Können Sie die Auslagerungsdatei sicher deaktivieren?

Wenn Ihnen der freie Speicher, einschließlich des virtuellen Speichers, ausgeht, kann das System die deterministische Ausführung nicht mehr garantieren und beendet sich von selbst. Zuvor führt das Betriebssystem verschiedene andere Aktionen aus, z. B. das Beenden von Programmen, die zu viel Speicher belegen. Was ich sagen möchte ist, dass der Speicher immer endlich ist und jedes Betriebssystem damit umgehen kann. Das Beschränken des verfügbaren Arbeitsspeichers auf 64 GB schadet Windows daher nicht - viele Systeme können selbst mit einer Auslagerungsdatei nicht mehr als 8 GB erreichen, da die Auslagerungsdatei bei 1 oder 2 GB RAM normalerweise viel kleiner als 6 oder 7 GB ist. Es sollte beachtet werden, dass der Overhead des Betriebssystems, das eine Auslagerungsdatei verwaltet, nicht messbar ist, solange Sie über eine übermäßige Menge an nicht verwendetem RAM verfügen.

Ist es sinnvoll, die Auslagerungsdatei auf einer Ramdisk zu speichern?

Um den verfügbaren Speicherplatz zu erhöhen, verwenden die meisten, wenn nicht alle fortgeschrittenen Betriebssysteme eine Art Auslagerungsdatei, in der sie Speicherplatz beanspruchen , der sich im RAM befindet und auf den eine Weile nicht zugegriffen wurde. Schreiben Sie den Speicher auf die Festplatte (Auslagerungsdatei oder Auslagerungsdatei ) und Löschen Sie den Speicher aus dem RAM, damit schneller Speicher verfügbar ist. Die Auslagerungsdatei wird verwendet, um die maximale Größe des Speichers über die Größe des verfügbaren RAM hinaus zu erweitern.

Die Verwendung einer Ramdisk (die den verfügbaren Arbeitsspeicher um die Größe der Ramdisk verringert) als Host für die Auslagerungsdatei (die den verfügbaren Arbeitsspeicher um die Größe der Auslagerungsdatei erhöht) funktioniert zwar, macht aber wenig Sinn. Es bietet nicht mehr Speicher als das Deaktivieren der Auslagerungsdatei, das System muss jedoch weiterhin Paging-Algorithmen ausführen.

Peter
quelle
Befindet sich die Auslagerungsdatei jedoch auf einem virtuellen RAM-Laufwerk, verringert sich die Zeit, die zum Kopieren einiger Megabyte vom RAM auf die virtuelle Festplatte oder von dort zurück benötigt wird. Und wenn die Auslagerungsdatei vollständig deaktiviert ist, sollte dafür überhaupt keine Zeit verschwendet werden. Ist das richtig?
user1306322
2
Richtig. Das Kopieren von Bytes aus dem RAM in eine Auslagerungsdatei auf einer Ramdisk ist die schnellste Auslagerungsdatei. Aber überhaupt nicht zu kopieren ist schlauer.
Peter
2
Swapfiles sind dazu da, einen Mangel an RAM auszugleichen. Wenn genügend RAM vorhanden ist, muss dies nicht kompensiert werden. Ihr Betriebssystem verwendet die Auslagerungsdatei jedoch weiterhin, sodass Sie sie in diesem Fall schneller deaktivieren können.
6
@Mast Das ist eine grobe Vereinfachung. Swapfiles sind ebenfalls vorhanden, um eine effiziente Nutzung des Arbeitsspeichers zu ermöglichen.
David Schwartz
1
@DavidSchwartz Vielleicht, aber das ist die Erklärung, die es mir am besten erklärt hat. In den meisten Fällen ist eine kleine Menge Swap-Datei immer vorteilhafter als keine Swap-Datei. Ich habe jedoch nicht die Ressourcen, um das zu sichern.
8

Um zu wiederholen, was andere gesagt haben, ist das Verschieben von Swap auf eine gerade RAM-Disk ziemlich sinnlos (im häufigsten Fall siehe unten). Es wird erreicht, dass zu einem bestimmten Zeitpunkt, wenn das System keinen freien Speicher mehr hat, einige Daten auf ineffiziente Weise von RAM zu RAM verschoben werden.

Wenn Sie die Festplatte / SSD tauschen, kann das Betriebssystem einige nicht verwendete RAM-Seiten löschen und den freigegebenen Speicherplatz für z. B. Dateicache oder andere Systempuffer verwenden. Möglicherweise stellen Sie nicht fest, dass das System weniger dieser RAM-Puffer zuweist, da Ihnen ohne eine Auslagerungsdatei kein virtueller Speicher zur Verfügung steht. In der Tat können Sie Ihre Leistung beeinträchtigen, indem Sie Swap deaktivieren.

Eine komprimierte RAM-Platte als Auslagerungslaufwerk , ein "ZSWAP" -Laufwerk, kann jedoch in Randfällen (in denen Sie möglicherweise nur ein paar zusätzliche MB RAM benötigen, um ein Auslagern auf die Festplatte zu vermeiden) von Vorteil sein, indem die Speichereffizienz eines RAM-Segments auf ein erhöht wird gewissem Umfang.

demonkoryu
quelle
1
+1 für die Erwähnung von ZSWAP. Es wird häufig in einigen mobilen Plattformen sowie in OS X 10.9 (wenn auch zusätzlich zu Swap) verwendet.
James_pic
Beachten Sie, dass "komprimierte RAM-Platte als Auslagerungslaufwerk" immer noch das Problem hat, dass nicht alle "Auslagerungsdateien" außer der eigentlichen Auslagerungsdatei betroffen sind.
Jamie Hanrahan
5

Wenn Sie keine Auslagerungsdatei haben, kann Windows im Falle eines BSOD (Absturz) die Absturzabbilddatei nicht schreiben. Dies bedeutet, dass Sie das Problem nicht mit den entsprechenden Tools analysieren können.

Die Auslagerungsdatei im RAM zu haben, ist so gut wie nutzlos, da sie beim Absturz verloren gehen kann.

Weitere Informationen finden Sie im Microsoft-Artikel Grundlegendes zu Absturzabbilddateien .

Harrymc
quelle
4

Für Windows aus dem Pferdemund:

Einige glauben, dass das Fehlen einer Auslagerungsdatei zu einer besseren Leistung führt. Im Allgemeinen bedeutet das Vorhandensein einer Auslagerungsdatei jedoch, dass Windows Seiten in die geänderte Liste schreiben kann (die Seiten darstellen, auf die nicht aktiv zugegriffen wird, die jedoch nicht auf der Festplatte gespeichert wurden) Auslagerungsdatei, wodurch dieser Speicher für nützlichere Zwecke (Prozesse oder Datei-Cache) verfügbar wird. Während es möglicherweise einige Workloads gibt, die ohne Auslagerungsdatei eine bessere Leistung erbringen, bedeutet eine solche im Allgemeinen, dass mehr verwendbarer Speicher * für das System verfügbar ist (egal, dass Windows keine Kernel-Absturzabbilder ohne Auslagerungsdateigröße schreiben kann groß genug, um sie zu halten).

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • Verwendbarer Arbeitsspeicher - obwohl dies die Verwendung eines virtuellen Arbeitsspeichers empfiehlt, wird auch empfohlen, dass Sie sehr viel Arbeitsspeicher benötigen, um sicherzugehen, dass keine Auslagerungsdatei / kein virtueller Arbeitsspeicher vorhanden ist. Ich habe 4 GB RAM 128 GB SSD ohne Auslagerungsdatei, verwende sie jedoch zum Surfen im Internet und zum Eingeben von Word-Dokumenten.
user127379
quelle
2
Aus meinen persönlichen Erfahrungen und etwas, das ich allen neuen Mitarbeitern predige: Es gibt nur zwei Regeln. # 1: Vertrauen Sie niemals Microsoft. # 2 .. du hast nicht auf Regel 1 gehört, also gibt es keine Regel 2.
Nick
3

Deaktivieren Sie die Auslagerungsdatei nicht. Dies gilt nicht nur, wenn Ihnen der Arbeitsspeicher ausgeht. Das Ausschalten hat keine direkte Leistungssteigerung zur Folge. Windows liest nur dann, wenn dies erforderlich ist. Es schreibt die ganze Zeit darauf, sodass es immer bereit ist, wenn es benötigt wird.

Sie können die Speicherkapazität auf etwa 2/3 der Speicherkapazität reduzieren, wenn Sie über mehr als 4 GB verfügen, da das Speicherbild komprimiert gespeichert wird. Sie können es auf Ihrer langsameren Festplatte ablegen, auf die von keinem anderen Festplattenzugriff zugegriffen wird, wenn auf einer SSD kein Speicherplatz vorhanden ist. Aber es ist von Vorteil, irgendwo einen zu haben.

In dieser Antwort erfahren Sie mehr darüber, warum. https://superuser.com/a/286476/4236

JamesRyan
quelle
3

Theoretisch sollte es keinen Sinn machen, die Auslagerungsdatei in den Arbeitsspeicher zu verschieben, da Sie nur das verbrauchen, was Sie angeblich gewonnen haben. Windows geht davon aus, dass die Auslagerungsdatei für solche Zwecke nicht verwendet wird.

In der Praxis schaffen es fehlerhafte Designs und Philosophien sogar in den Windows-Kernel, und die Speicherverwaltung von Microsoft ist nicht unbedingt perfekt. Viele haben festgestellt, dass das Einfügen der Auslagerungsdatei in eine Ramdisk tatsächlich zu einer Leistungssteigerung führt , solange Sie über ausreichend Arbeitsspeicher verfügen.

Ich habe einen Beitrag zusammengestellt, in dem eine Sammlung solcher Benutzer aus einem einzelnen Forenthread aufgeführt ist, die festgestellt haben, dass die Auslagerungsdatei trotz der großen Menge an freiem Arbeitsspeicher weiterhin verwendet wird:

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589

Dan W
quelle
Vielen Dank für die Zusammenstellung dieser Liste. Es sollte helfen, Beweise dafür vorzulegen, dass sich Theorie und Praxis in dieser Angelegenheit unterscheiden. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.Ja, als ob: p
user1306322
Diese Schlussfolgerung ist fehlerhaft. Die Tatsache, dass das Betriebssystem Dinge in die Auslagerungsdatei schreibt, obwohl es anscheinend "enorme Mengen an RAM frei" hat, beweist nichts über "fehlerhaftes Design und Philosophie". Dies bedeutet, dass Sie nicht über genügend Informationen verfügen, um die Entscheidungen des Betriebssystems richtig zu bewerten. Betrachten Sie zunächst den Fall, dass viele Seiten geändert wurden. Sie werden in die Auslagerungsdatei geschrieben und in die Standby-Liste verschoben - jetzt sind sie Teil von "verfügbar". Verstehst du es? Der Arbeitsspeicher ist verfügbar, weil sein Inhalt in die Auslagerungsdatei geschrieben wurde!
Jamie Hanrahan
@JamieHanrahan: Das erklärt nicht, warum Menschen immer noch Probleme haben, obwohl sie selten mehr als einen Bruchteil des Arbeitsspeichers verwenden. Zu den Kommentaren in diesem Thread gehören: "Ich habe nie wirklich mehr als die Hälfte davon verbraucht", "Die Auslastung der Auslagerungsdatei beträgt ungefähr 2,7 GB, wobei die RAM-Auslastung 3,23 GB von 16 GB beträgt." Ich habe meine Auslagerungsdatei erstellt und auf RAMDisk verschoben ".
Dan W
Die meisten dieser Kommentare sind auf schlechte Informationen zurückzuführen. Es ist unwahrscheinlich, dass Leistungsprobleme gelöst werden, indem Dinge im RAM aufbewahrt werden, auf die nicht häufig zugegriffen wird. Die Auslagerungsdatei ist nicht die einzige Datei, die an der Auslagerung beteiligt ist. Es gibt Hunderte von anderen, daher ist es unwahrscheinlich, dass eine Aktion, die sich nur auf die Auslagerungsdatei auswirkt (und dem Rest des Systems GB RAM wegnimmt und dadurch die Auslagerungsrate erhöht), einen "dramatischen" Effekt hat. Solche Berichte werden normalerweise nicht aufrechterhalten, wenn ordnungsgemäß kontrollierte Tests durchgeführt werden. Sie können Anekdoten finden, die fast jeden Glauben stützen; Ich finde sie nicht überzeugend.
Jamie Hanrahan
Insbesondere die Behauptung "die Auslagerungsdatei wird verwendet" verlangt einen Nachweis. Nur GBs Zeug in der Auslagerungsdatei zu haben, beweist nicht, dass die Auslagerungsdatei auf eine Weise verwendet wird, die sie in einen kritischen Leistungspfad versetzt. Um dies auszuwerten, isolieren Sie die Auslagerungsdatei auf einer Partition für sich - oder zumindest auf einer Partition, die für nichts anderes aktiv ist - und Sie können PerfMon auf dieser "logischen Festplatte" verwenden, um ihre E / A-Raten zu überwachen. Wenn die Auslagerungsdatei nicht oft gelesen wird, spielt es keine Rolle, wie viel darauf geschrieben wurde!
Jamie Hanrahan
2

Das Konvertieren eines Betriebssystems, das von Anfang an so konzipiert wurde, dass es keinen Swap verwendet, ist viel schwieriger als es sich anhört.

Moderne Macs verfügen über eine Wiederherstellungspartition - Teil des Hauptlaufwerks mit einem abgespeckten Betriebssystem, mit dem das Hauptsystem repariert oder wiederhergestellt werden kann. In den Tagen, in denen das DVD-Installationsprogramm einen benutzerdefinierten Prozess ausführte, erstellt das System jetzt eine RAM-Disk für die Auslagerungspartition, da dem Installationsprogramm nicht garantiert werden kann, dass Arbeitsspeicherplatz verfügbar ist. Das Betriebssystem enthält die erforderlichen Frameworks zum Ausführen der enthaltenen Wartungssoftware, die mit den nach der Installation verfügbaren Dienstprogrammen identisch ist. Viel weniger Arbeit für alle.

Wenn Sie das System auf jeweils eine Anwendung beschränken, wird der Ramdisk-Swap im Grunde genommen nie verwendet, aber das Betriebssystem erwartet, dass er vorhanden ist.

Peter
quelle
2

Wenn Sie über genügend Speicher verfügen, lautet die Antwort "Ja". Sie können den Swap deaktivieren. Swap wurde entwickelt, um die Einschränkungen des Arbeitsspeichers zu überwinden und dessen Nutzung effizienter zu gestalten.

Die Frage ist nun, wie viel RAM ist genug RAM? Es gibt keine allgemeingültige Antwort darauf und von Natur aus sind Systeme hungrig nach Erinnerung. Deaktivieren Sie Swap daher nicht, es sei denn, Sie arbeiten in einer bestimmten und kontrollierten Umgebung.

Jede andere Art von Stunt wie das Setzen von Swap auf RAM erzeugt nur eine zusätzliche Komplexitätsebene und verbraucht Speicher, der sonst direkt verwendet werden könnte.

nsn
quelle
2

Mein System verfügt über 24 GB RAM. Aus diesem Grund habe ich die Auslagerungsdatei deaktiviert, um die Abnutzung meiner SSD zu verhindern, ohne dass Probleme auftreten. Ich habe kürzlich eine RAM-Disk erstellt, auf der 4 GB Arbeitsspeicher zum Speichern von Google Chrome-Cache-Dateien verwendet wurden, um festzustellen, ob dadurch die Leistung von Online-Flash-Player-Spielen und das allgemeine Surfen im Internet verbessert wird. Ich habe durch dieses Experiment eine deutliche Leistungssteigerung festgestellt. Da mehr Speicherplatz auf meiner RAM-Disk verfügbar war, habe ich meine Auslagerungsdatei aktiviert und sowohl die minimale als auch die maximale Größe auf 1 GB festgelegt und auf die RAM-Disk verschoben. Obwohl ich nicht sagen kann, dass es Leistungssteigerungen gab, scheint mein System stabiler zu laufen.

Michael
quelle
Es wäre viel besser, wenn Sie nur eine Auslagerungsdatei auf Ihrer SSD ablegen würden. Windows wird es nicht verwenden, wenn es nicht muss. Das Speichern einer Auslagerungsdatei auf einer RAM-Disk ist lächerlich. Ja, Seitenfehler in dieser "Datei" werden schneller behoben als auf einer echten Festplatte. Indem Sie jedoch zunächst den RAM der RAMdisk zuweisen, erhöhen Sie die Anzahl der Seitenfehler. Es ist, als würde man sich Geld leihen, sich Zinsen berechnen und die "Zinsen" wegwerfen. Es ist nicht einmal falsch.
Jamie Hanrahan
1

Das Verschieben der Auslagerungsdatei in den Arbeitsspeicher ist eine lächerliche Idee. Schalten Sie sie einfach aus und erhöhen Sie den Arbeitsspeicher. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

Die Speicherverwaltung wird von der CPU übernommen, und ob die Auslagerungsdatei aktiviert oder deaktiviert ist, hat keinen Einfluss darauf, wie Seiten behandelt werden. Es ist für Windows transparent.

Die Seitenpriorität ändert sich nicht, die Seiten werden trotzdem verworfen. Auslagerungsdateien werden von der CPU als sekundärer Speicher verwendet, nicht vom Betriebssystem. Es ist nichts weiter als Level 2 Cache, wenn Level 1 (RAM) leer ist.

Ein schnelles und sehr schmutziges Beispiel: Mein Computer hat 16 GB RAM und keine Auslagerungsdatei. Vor 5 Minuten mit 13 GB im Standby-Modus und nur 2 GB freiem Speicherplatz habe ich Fallout 4 geladen. Die Seiten mit niedriger Priorität wurden als Fallout geladen verworfen.

Übrigens ist der Technet-Blog von 2008 über das Verschieben von Windows-Speicherbeschränkungen sehr irreführend - ich würde sagen, bis zur Täuschung. https://i.stack.imgur.com/wXkmi.png Ich bin auch zweifelhaft, ob auch Mark es geschrieben hat, aber ich hoffe nicht, da es meine Perspektive von ihm ändern würde .....

Fwiw gibt es klaffende Löcher in dem Artikel, die ich bin verblüfft, dass niemand darüber nachgedacht hat, wie oft dieser Blog verwiesen wurde

  • Die Auslagerungsdatei und ihr Speicherort werden von Windows verwaltet. Das Abfangen des Speicherzugriffs auf Speicherorte, die auf die Festplatte ausgelagert wurden, wird von der CPU abgefangen, aber dem Betriebssystem übergeben, um die Seite von der Festplatte abzurufen und in diese zu laden.

Jedenfalls ist hier eine nicht so vage Beschreibung:

Windows kann keine höheren Adressen als die CPU erreichen - dies ist nicht möglich.

Egal was das Betriebssystem kann, es ist immer noch durch die Hardware, auf der es läuft, begrenzt. Denn das Betriebssystem ist eigentlich die CPU selbst (interne Register).

OK, Auslagerungsdatei ist also ein Bereich auf der Festplatte, den die CPU für den erweiterten physischen Adressraum verwendet, wenn sie physisch oder architektonisch nicht mehr RAM verwenden kann.

In einer segmentierten x86-32-Bit-Architektur gibt es beispielsweise zwei 2-GB-RAM-Segmente.

Einer ist dem Kernel zugeordnet. Die anderen 2 GB sind für den Benutzermodus vorgesehen. Das ist der gesamte Arbeitsspeicher, den die CPU mit 32 DRAM-Pins nutzen kann. Bei einem 32-Bit-Prozess stehen jedoch 4 GB zur Verfügung. Gut, zum Glück kann die CPU Sekundärspeicher AKA der Festplatte zum Speichern der zusätzlichen 2 GB Seiten verwenden. Da es interne Register hat
Die physischen Speicherorte, an denen virtuelle Seiten, auf die vom Prozess verwiesen wird, nicht im RAM gespeichert werden müssen. Sie müssen jedoch irgendwo von der CPU gespeichert werden.

Die CPU kann nicht alle 4 GB RAM für die App bereitstellen, aber sie kann 4 GB an Adressen bereitstellen, indem sie die Festplatte als sekundären Cache verwendet (das ist alles, was die Festplatte wirklich ist).

Die Seiten werden über den internen Paging-Mechanismus in den Arbeitsspeicher und aus dem Arbeitsspeicher verschoben. Dies ist jedoch nicht dasselbe wie eine Auslagerungsdatei. Paging tritt immer auf ....

Das Endergebnis ist wirklich nicht so kompliziert. In den letzten 15 Jahren hatten viele Endbenutzer den Eindruck, dass eine Auslagerungsdatei ein wesentlicher Bestandteil des Betriebssystems ist, nicht aber. Das war noch nie so. Dieses Missverständnis wird zum Teil von Unternehmen wie Intel und Microsoft angeheizt.

RAM ist ein schnelles Speichergerät, die Festplatte ist ein langsameres Speichergerät, daher ist RAM im Wesentlichen Cache der Ebene 1, die Festplatte ist Level 2 (ohne Berücksichtigung des CPU-Cache für diese Analogie). Beides ist für die CPU zugänglich.

Steht der CPU nicht genügend RAM zur Verfügung, um die benötigten Seiten zu speichern, kann die Festplatte als Überlauf verwendet werden. Wenn genügend RAM vorhanden ist, ist der PF redundant.

Bis zum Core 2 hatten Intel-Prozessoren einen 32-Pin-DRAM-Bus und 32 Register, was bedeutet, dass die CPU Zugriff auf 4 GB RAM und 4 GB Festplattenspeicher (Auslagerungsdatei) hatte. Dies ist eine Einschränkung der Architekturhardware, keine Windows-Einschränkung.

Für Prozesse standen insgesamt 3,5 GB zur Verfügung, da eine Seitentabelle 512 MB belegt. Aus diesem Grund werden in Windows 3,5 GB mit Intel-CPUs (bis Core 2) angezeigt. Wenn Sie eine GPU hinzufügen, ist noch weniger verfügbar.

Xeon konnte auf insgesamt 32 GB RAM und 64 GB physischen Speicherplatz mit Festplatte zugreifen (erneut Auslagerungsdatei). ( Dies ^ deckt PAE ab, -mehr werden Links hinzugefügt ).

Bildbeschreibung hier eingeben http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

3. Screenshot Quelle: System V Application Binary Interface AMD64 Architekturprozessor Supplement Draft Version 0.99.7

Ich beabsichtige, diese Antwort weiter zu verbessern und Quellenmaterial und relevante Informationen hinzuzufügen. Ich möchte ein Gleichgewicht zwischen nicht genügend Informationen und zu vielen technischen Informationen erreichen. Vorschläge sind willkommen. Bitte stimmen Sie nicht ab, nur weil es möglicherweise nicht so gut geschrieben ist.

Robert Fischer
quelle
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
DavidPostill