Warum bedeuten die Standardeinstellungen unter 64-Bit-Windows immer noch eine große Auslagerungsdatei?

Warum bedeuten die Standardeinstellungen unter 64-Bit-Windows immer noch eine große Auslagerungsdatei?

Meine Frage basiert auf der Beobachtung, dass seit der Einführung von 64-Bit-Windows immer mehr Leute in meinem Umfeld auf Auslagerungsdateien in ihren Systemen hereinfallen. Beispielsweise etwas so Einfaches wie zeros(2e5)in MATLABteilt zunicht nur 1600 kB Nullen, sondern 160 GB. Dank des 64-Bit-Adressraums kann diese Menge zwar angesprochen werden, aber sehr oft nicht im RAM. (Ich könnte viele Beispiele wie dieses nennen, die sich alle auf die Speicherzuweisung reduzieren.) Infolgedessen greift Windows auf die Auslagerungsdatei zurück und speichert 160 GB Nullen auf der Festplatte. Erst danach (oder nach einem erzwungenen Herunterfahren) reagiert Ihr System wieder.

Unter 32-Bit-Windows wurde dieses Problem durch den Adressraum von maximal 4 GB weitgehend verhindert.

Warum konfiguriert Microsoft also immer noch standardmäßig eine große Auslagerungsdatei? Meiner Beobachtung nach ist die Standardgröße bei größerem RAM größer, was eigentlich keinen Sinn ergibt, es sei denn, Sie haben ein wirklich großes, wirklich schnelles Laufwerk wie eine furchtbar teure SSD. Aus diesem Grund neige ich dazu, Auslagerungsdateien bei 64-Bit-Windows-Installationen zu deaktivieren. Oder sollte ich das nicht? Welche Gründe sprechen dafür oder dagegen?

Antwort1

Im Gegensatz zu Linux führt Windows keine verzögerte Speicherzuweisung durch, und die Menge des zuweisbaren Speichers hängt von der Auslagerungsdatei ab.

Unter Linux wird davon ausgegangen, dass jede „sparsame“ Speicherzuweisung nicht vollständig genutzt wird, und daher können Programme den Speicher kontinuierlich überbelegen, bis er physisch erschöpft ist. Falls Programme tatsächlich ihren zugewiesenen Speicher erreichen, aber nicht genügend RAM oder Swap vorhanden ist, um den Bedarf zu decken, werden Prozesse beendet.

Windows verhält sich umgekehrt und geht davon aus, dass der gesamte zugewiesene Speicher irgendwann verwendet wird. Daher werden alle Reservierungen berücksichtigt, bis der physische Speicher + die Größe der Auslagerungsdatei erreicht sind. Wenn ein Programm Speicher zuweisen kann, kann es ihn verwenden. Wenn es keinen Speicher zuweisen kann, hat es die RAM- und Auslagerungsdateigröße erreicht.

Durch das Deaktivieren der Auslagerungsdatei kann ein Programm, das Speicher zuweist, den es nicht verwendet (d. h. es geht von einer Auslagerungsdatei aus), dazu führen, dass Ihnen der Speicher ausgeht, obwohl noch etwas „frei“ ist.

Wenn Sie den gesamten Arbeitsspeicher eines Windows-Systems nutzen möchten, sollten Sie das System wie vorgesehen funktionieren lassen, indem Sie ihm eine Auslagerungsdatei zuweisen.

Antwort2

Die Auslagerungsdatei bietet dem Betriebssystem zwei große Vorteile, die bei einem 64-Bit-Betriebssystem nicht wesentlich beeinträchtigt werden.

  1. Die Auslagerungsdatei erhöht das Commit-Limit.

Wenn eine Anwendung Speicher zuweist, verspricht oder verpflichtet sich ein Windows-Betriebssystem, auch im schlimmsten Fall ausreichend Speicherplatz dafür zur Verfügung zu haben. Dieser Speicher kann sich im RAM oder in der Auslagerungsdatei befinden. Das Commit-Limit wird als RAM-Größe plus Auslagerungsdateigröße abzüglich eines kleinen Overheads definiert. Ohne Auslagerungsdatei ist das Commit-Limit etwas geringer als die RAM-Größe. Der Speichermanager verfolgt den gesamten zugewiesenen Speicher, um sicherzustellen, dass dieser das Commit-Limit nie überschreitet.

Ohne Auslagerungsdatei ist das Commit-Limit ein hartes Limit, das nicht erhöht werden kann, während das Betriebssystem läuft. Mit der Standardkonfiguration der Auslagerungsdatei ist das Commit-Limit nicht nur viel höher, sondern es ist ein weiches Limit, das durch Erweitern der Auslagerungsdatei bei Bedarf erhöht werden kann.

Das Erreichen des Commit-Limits in Windows ist eine schlechte Sache. Die meisten Anwendungen kommen mit dieser Möglichkeit nicht gut zurecht und das Betriebssystem selbst kann sie oft nicht tolerieren.

  1. Die Auslagerungsdatei optimiert die RAM-Nutzung.

Ein Computer kann zu jedem Zeitpunkt eine große Menge an Daten enthalten, auf die lange Zeit nicht zugegriffen wurde und die während der Sitzung möglicherweise nie abgerufen werden. Der Speichermanager kann natürlich nicht wissen, wie wichtig diese Daten sind, daher muss er sie irgendwo aufbewahren.

Das Speichern all dieser selten verwendeten Daten im Hochgeschwindigkeits-RAM ist ein schwerwiegender Missbrauch dieser wertvollen Ressource. Wenn der RAM diese Belastung nicht hätte, stünde mehr davon für die Verwendung durch Anwendungen und für Caching-Zwecke zur Verfügung. Caching ist in einem modernen Betriebssystem eine wirklich große Sache und trägt wesentlich zu einer guten Leistung bei.

Die Auslagerungsdatei bietet einen Ort, an den der Speichermanager diese selten verwendeten Daten auslagern und den RAM von dieser Aufgabe entlasten kann. Dies ist zwar mit Kosten verbunden, aber denken Sie daran, dass es sich um selten verwendete Daten handelt, sodass dies nicht schwerwiegend sein sollte. Und der Speichermanager verfügt über zahlreiche Optimierungen, um diese Kosten zu minimieren.

Betrachten Sie dies jedoch nicht als Kosten, sondern als Investition in die Leistung. So wie es eine gute Sache ist, Geld klug zu investieren, investiert der Speichermanager ein wenig Zeit in die Verwendung der Auslagerungsdatei in der Erwartung, dass dies später große Gewinne einbringen wird. Normalerweise funktioniert es.

Dies ist keine neue Idee. Sie wird seit vielen Jahren in Windows und Linux und schon lange davor in großen Computersystemen verwendet. Es ist ein bewährtes Prinzip, das über Jahrzehnte optimiert wurde.

Fazit: Lassen Sie Windows die Auslagerungsdatei nach Belieben verwalten. Die Entwickler wissen, was sie tun. Leider hat Microsoft dies den Benutzern nicht sehr gut mitgeteilt, und es gibt viele Missverständnisse. Vieles, was Sie im Internet über die Auslagerungsdatei lesen, enthält zumindest schwerwiegende Fehler.

verwandte Informationen