Muss ich immer noch virtuellen Speicher verwenden?

14

Ich hätte gedacht, dass dies bereits gefragt wurde, aber ich kann es scheinbar nicht finden.

Ab wann muss der virtuelle Speicher nicht mehr aktiviert sein? Mit 4 GB RAM sehe ich, dass der Computer kaum etwas davon verbraucht. Zu diesem Zeitpunkt ist virtueller Speicher nicht unbedingt erforderlich. Ist es gefährlich, es auszuschalten? Gibt es Features, die ich sonst verliere?

Steve Rowe
quelle
1
Achtung: Den Treibern steht nur eine begrenzte Menge an Speicher zur Verfügung, die als non-pagedund pagedPool- Speicherabschnitte bezeichnet wird. Eine Auslagerungsdatei ist erforderlich, wenn der ausgelagerte Bereich voll ist. Als Spieler habe ich ein Spiel gesehen, das sich über ausgelagerten Poolspeicher beschwert, nur weil ich meine Auslagerungsdatei auf einem 8-GB-System deaktiviert hatte. Fazit: Auslagerungsdateien sind erforderlich, sie verhindern die Erschöpfung des ausgelagerten Pools und beschleunigen Ihr System tatsächlich .
Tamara Wijsman

Antworten:

9

Da der Arbeitsspeicher auf Desktop-PCs / Laptops nicht mehr gerade eine sparsame Ressource ist, bezweifle ich, dass die meisten Programme nicht mehr genügend Arbeitsspeicher haben und stattdessen abstürzen werden.
Also: Gefährlich? Ja , wenn Ihre 4 GB irgendwie aufgebraucht sind und Sie keine Auslagerungsdatei haben, können Anwendungen abstürzen.
Und wie im Beispiel von Zoran gezeigt, kann es später schwierig sein, das Problem zu identifizieren.

Der Artikel, auf den sich Ram bezieht, besagt auch, dass das Ausschalten des Swappings normalerweise nicht die Geschwindigkeit verbessert und stattdessen das Gegenteil bewirken kann :

Während es möglicherweise einige Workloads gibt, die ohne Auslagerungsdatei eine bessere Leistung erbringen, bedeutet eine solche im Allgemeinen, dass dem System mehr verwendbarer Speicher zur Verfügung steht

foraidt
quelle
Ich muss den Artikel auf der MS-Website ausgraben, aber MS sagt, dass Sie immer eine Auslagerungsdatei haben sollten. Selbst auf Systemen mit hohem Arbeitsspeicher kann das Nichtvorhandensein eines solchen Systems zu einer Verlangsamung Ihres Computers führen.
Keltari
10

Siehe Mark Russinovichs Artikel über virtuellen Speicher. Das sollte Ihnen einen guten Hinweis auf den virtuellen Speicher geben.

Hier ist ein nützlicher Auszug aus dem Link

Woher wissen Sie also, wie viel Commit-Aufwand Ihre Workloads erfordern? Möglicherweise haben Sie in den Screenshots bemerkt, dass Windows diese Nummer protokolliert und Process Explorer sie anzeigt: Peak Commit Charge. Um die Größe Ihrer Auslagerungsdatei optimal zu bestimmen, sollten Sie alle Anwendungen, die Sie gleichzeitig ausführen, starten, typische Datensätze laden und dann den Spitzenwert für die Festschreibungsgebühr notieren (oder diesen Wert nach einem Zeitraum anzeigen, in dem Sie wissen, dass die maximale Last erreicht wurde). . Setzen Sie das Minimum der Auslagerungsdatei auf diesen Wert abzüglich der Größe des Arbeitsspeichers in Ihrem System (falls der Wert negativ ist, wählen Sie eine Mindestgröße, um die Art des Absturzabbilds zuzulassen, für die Sie konfiguriert sind). Wenn Sie für potenziell große Festschreibeanforderungen eine gewisse Atempause haben möchten, stellen Sie das Maximum so ein, dass sich diese Zahl verdoppelt.

Prabhu R
quelle
+1 für Mark Russinovich Referenz. Immer eine gute Lektüre.
mrduclaw
3

Dieser klassische Beitrag auf ServerFault hat einige gute Punkte. Für nur 4 GB würde ich die Auslagerungsdatei in Ruhe lassen, und der Speicherplatz auf der Festplatte ist in jedem Fall gering.

MartW
quelle
3

Ich würde empfehlen, die Einstellungen für den virtuellen Speicher auf den Standardeinstellungen zu belassen. Ich habe 8 GB RAM und habe den virtuellen Speicher ausgeschaltet, weil ich dachte, ich würde an Geschwindigkeit gewinnen (weil ich nicht getauscht habe), aber es stellte sich heraus, dass mein System weniger stabil war (und ich tat dies auf 2 Computern, ähnliches Ergebnis). Ich hatte ungefähr ein BSOD pro Woche auf beiden Maschinen. Ich begann die erzeugten Minidumps zu untersuchen und fand heraus, dass alle BSODs durch einen Aufruf einer Routine namens KiPageFault ausgelöst wurden. Also habe ich versucht, die Einstellungen für den virtuellen Speicher auf die Standardeinstellungen zurückzusetzen, und die normalen BSODs sind verschwunden.

Es hat eine Weile gedauert, die 2 zu korrelieren, und ich habe keine tatsächlichen Beweise dafür, dass die Tatsache, dass ich den virtuellen Speicher ausgeschaltet habe, die BSODs verursacht hat, aber meine Maschinen waren stabiler, nachdem ich sie wieder eingeschaltet habe ...

Zoran
quelle
Vielen Dank. Es ist gut, echte Ergebnisse zu hören und nicht nur Vermutungen.
Steve Rowe
0

Hängt davon ab, wie hoch Ihre Arbeitsbelastung ist. Ich habe eine Reihe von plattenlosen Frontends für eine Webanwendung eingerichtet. Sie haben das Netzwerk gebootet und alles, was sie brauchten, innerhalb von 8 GB RAM ausgeführt.

Ich habe auch Windows (wahrscheinlich 98) mit 32 MB und ohne Auslagerungsdatei verwendet - natürlich müssen Sie in diesem Speicherbereich leben und Ihre Apps auf die Ressourcen beschränken.

Sie sollten sicherstellen, dass der Festplatten-Cache über zusätzlichen RAM verfügt, da sonst die Leistung beeinträchtigt werden kann.

Ich scheine mich zu erinnern, dass es einige Programme gibt, die ohne VM nicht laufen, aber ich habe keine Ahnung, was sie waren

Knabberzeug
quelle
-2

Nun, Steve, interessant, dass du das fragst.

Ich werde Ihnen ein kleines Geheimnis verraten: Der Punkt, an dem Sie virtuellen Speicher benötigten, war nie. Virtueller Speicher war eine wahnsinnig inkompetente Idee, die von einer Reihe von Wissenschaftlern entwickelt wurde, die sich mit praktischen Computersystemen auskannten. Jeder Computer funktioniert wesentlich besser, wenn er ohne VM ausgeführt werden kann.

Nun könnten Sie sich fragen, ob VM nutzlos und schädlich ist. Warum wird sie von den meisten großen modernen Betriebssystemen verwendet? Die kurze Antwort auf diese Frage lautet, dass die Leute, die bei Microsoft, Apple und IBM entschieden, ob sie VM verwenden oder nicht, noch dümmer und unerfahrener waren als die Wissenschaftler, die VM erfunden haben und sie auf der Grundlage derselben, völlig falschen Annahmen übernehmen wollten Wissenschaftler hatten, als sie es erfanden. Wir könnten über diese Annahmen und Missverständnisse sprechen, aber wenn sie einfach zu verstehen und zu beschreiben wären, hätten wir das VM-Problem nicht an erster Stelle.

Ich melde mich wieder bei dir. Leider haben Sie genau wie die oben erwähnten Tardnoggins bei Apple und Microsoft Ihre eigenen Missverständnisse, nämlich die Idee, dass Sie VM ausschalten können. Natürlich können Sie es nicht ausschalten, das würde den ganzen Zweck des Scheißens zunichte machen, wenn Sie es einfach ausschalten könnten. Wenn Leute etwas wirklich Dummes tun, stellen sie immer sicher, dass es irreversibel ist. Wenn alle nur VM ausschalten könnten, würden sie es tun, und das würde die Bozos, die es erstellt haben, ziemlich dumm aussehen lassen, nicht wahr? Sie verhinderten diese Möglichkeit, indem sie sie unauswechselbar machten, ähnlich wie Microsoft Internet Explorer unauswechselbar machte.

Sie können die Größe der Auslagerungsdatei begrenzen, was natürlich auf ein Minimum festgelegt werden sollte, hoffentlich auf 0. Der virtuelle Speicher ist immer noch vorhanden, aber Sie können ihn zumindest von sehr, sehr langsam auf nur sehr, sehr sehr reduzieren langsam, indem Sie es bitten, das Laufwerk nicht in den Wahnsinn zu verwickeln.

Tyler Durden
quelle
Virtueller Speicher ermöglicht sehr viele gute Dinge. Wenn Sie keinen virtuellen Speicher hätten, müssten Sie über genügend RAM verfügen, um jedes Byte an Code und Daten zu speichern, das jeder Prozess auf Ihrem System definiert, unabhängig davon, ob tatsächlich darauf verwiesen wurde oder nicht. Da die meisten Programme 90% ihrer Zeit damit verbringen, 10% ihres Codes und ihrer Daten zu verwenden, wäre dies eine enorme Verschwendung. Sie würden auch viele andere nützliche Dinge verlieren, die das Kommentarformat hier nicht zulässt, um mich zu skizzieren. Der Grund, warum wir den virtuellen Speicher nicht aufgegeben haben, ist, dass er immer noch eine wirklich gute Idee ist. Auch in "praktischen Rechnersystemen".
Jamie Hanrahan
@RickBrant Sie klingen wie die idiotischen Elektroingenieure von Intel und IBM, die ich mir in den 1980er Jahren immer wieder anhören musste, um zu erklären, warum VM eine gute Idee war. Ich erinnere mich, als IBM mit OS / 2 herauskam, dem ersten Betriebssystem, das durch VM beschädigt wurde, und ich musste ihnen zuhören, um zu erklären, warum dies eine so großartige Idee war. Nun, Gott sei Dank ist OS / 2 gestorben, aber leider ging VM weiter, wie ein Zombie, also ist es hier 2017 und ich höre immer noch diesen Unsinn Du? Das ist der Scherzteil. 99% der Leute, die für VM werben, sind keine Programmierer
Tyler Durden
Tatsächlich war ich Dual-Major, CS / EE, an einer der besten Tech-Schulen an der Westküste. Heute bin ich hauptsächlich Programmierer, aber ich interagiere mit Hardwaretypen. Haben Sie nun eine überzeugende Gegenargumentation, die besagt, dass es sehr verschwenderisch wäre, jedes letzte Byte an Code und Daten, die ein Programm definiert, jederzeit im RAM zu haben, unabhängig davon, ob es diesen benötigt oder nicht? Weil der virtuelle Speicher das vermeidet. Oder werden Sie mit persönlichen Angriffen fortfahren, die sich auf "Sie müssen ein Idiot sein" belaufen?
Jamie Hanrahan
Oh, und wieder "OS / 2, das war das erste mit VM beschädigte Betriebssystemhirn", Ähm, nein, nicht vor ungefähr zwei Jahrzehnten. Vielleicht das erste weit verbreitete Betriebssystem für PCs. (Aber nicht die erste für "Personal Computer".)
Jamie Hanrahan