Wie weise ich Windows 7/8/10 an, weniger aggressiv RAM-Kopien in die Auslagerungsdatei zu erstellen?

Wie weise ich Windows 7/8/10 an, weniger aggressiv RAM-Kopien in die Auslagerungsdatei zu erstellen?

Viele Leute fragen, wie man die Auslagerungsdatei deaktiviert, weil sie die Auswirkungen des Problems spüren, nach dem ich fragen werde. Stattdessen möchte ich das Problem beheben, ohne die Auslagerungsdatei zu deaktivieren.

Windows kann Daten, die es möglicherweise auslagern muss, im RAM der Auslagerungsdatei speichern. Obwohl dies theoretisch dabei hilft, in einem Notfall eine Auslagerung zu vermeiden, ist es für Benutzer von Systemen mit langsamen Festplatten, z. B. bei billigen Laptops, äußerst ärgerlich.

Zum Beispiel mein aktueller Computer: Momentan sind 4,8 GB RAM im Einsatz, aber die aktuelle „Commit-Ladung“ beträgt etwa 8 GB.

Mithilfe von sysinternen Tools finde ich heraus, dass der Großteil des Inhalts der Auslagerungsdateien präemptive Kopien von Dingen im RAM sind, die tatsächlich wenig Platz zu haben scheinen (ich habe 8 GB RAM, also sind 61 % davon belegt). Mithilfe von RamMap stelle ich jedoch fest, dass der Großteil des RAM auf „Standby“-Speicher entfällt und der Großteil dieses „Standby“-Speichers aus Windows-Cache besteht (der dafür sorgt, dass Dateien schneller geladen werden). Ein großer Teil davon ist eine Binärdatei mit den Sounddateien eines Spiels.

Folgendes passiert also derzeit: Ich spiele ein Spiel, Windows lädt es in den RAM und kopiert andere Dinge in die Auslagerungsdatei (was die Leistung des Spiels verschlechtert). Dann beende ich das Spiel und Windows lässt die Spieldateien im Cache des RAM. Da die RAM-Nutzung hoch ist, legt es immer mehr Dinge in die Auslagerungsdatei und erwartet, dass mir der RAM ausgeht. Dies verlangsamt es, da es ständig E/A-Vorgänge auf meiner Festplatte von extrem schlechter Qualität durchführt.

Wenn ich mir jedoch nur die tatsächliche RAM-Nutzung durch Apps ansehe, also die Commit-Ladung der aktuell laufenden Apps, Prozesse, des Kernels und der gemeinsam genutzten Dinge, sollte die tatsächliche RAM-Nutzung 2,5 GB betragen, RAM und Auslagerungsdatei eingeschlossen.

Ich wollte also versuchen, Windows nicht anzuweisen, den Cache nicht zu verwenden (das Zwischenspeichern ist ziemlich cool) oder die Auslagerungsdatei zu deaktivieren. Stattdessen wollte ich es anweisen, die Auslagerungsdatei NICHT zu verwenden, es sei denn, es ist wirklich nötig (beispielsweise, wenn die physische RAM-Nutzung – physische RAM-Nutzung im Standby > 80 % des physischen RAM – beträgt).

Weiß jemand, wie ich das mache?

Antwort1

Nach ausführlicher Recherche habe ich gelernt, dass meine Frage buchstäblich unmöglich ist. Man kann Windows nicht optimieren, damit es sich besser verhält. Das Beste, was man tun kann, ist, die Auslagerungsdatei buchstäblich vollständig zu deaktivieren.

Bei mir hat das Deaktivieren der Auslagerungsdatei größtenteils geholfen und die meisten meiner Leistungsprobleme behoben (und einige andere Probleme verursacht), aber es hat sich absolut gelohnt.

Antwort2

Ich fürchte, das wird die Leistung verschlechtern. Wie Sie zugeben, ist Ihre Festplatte langsam. Das bedeutet, dass es wichtig ist, so viel Speicher wie möglich zur Verwendung als Festplattencache zur Verfügung zu haben. Das ist nur möglich, indem man Dinge, auf die nicht zugegriffen wird, aus dem RAM entfernt, und das erfordert, sie in die Auslagerungsdatei zu schreiben.

Wenn Windows die Auslagerungsdatei nicht verwenden würde, um mehr RAM für die Zwischenspeicherung bereitzustellen, wäre aufgrund der reduzierten Zwischenspeicherung sogar noch mehr Festplatten-E/A erforderlich. Dies würde die Leistung verschlechtern.

Windows macht das Beste aus einer schlechten Situation. Die Leute, die das Windows-Speicherverwaltungssystem (ab Vista) entwickelt haben, wussten genau, was sie taten, und sind führende Experten im Design von Paging-Systemen auf moderner Hardware. Weder Sie noch ich wissen es besser als sie. Sie haben nichts wirklich falsch gemacht, was man durch Umlegen eines Schalters beheben könnte. Tut mir leid, es gibt keinen magischen „Schneller“-Knopf.

Übrigens haben moderne SSDs eine beträchtliche Schreiblebensdauer. Wenn Sie also keinen weiteren RAM hinzufügen können, ist es nicht unvernünftig, eine kleine, billige SSD für Ihre Auslagerungsdatei hinzuzufügen. Natürlich würde es einen größeren Unterschied machen, wenn Sie Ihre Hauptdateien auf einer SSD speichern würden.

Antwort3

Leider ist dies nicht möglich. Grundsätzlich können Sie entweder eine Auslagerungsdatei haben oder nicht. Sie können auswählen, wo die Auslagerungsdatei gespeichert wird und wie groß sie ist, Sie haben jedoch keine Kontrolle über den Algorithmus, der bestimmt, was ausgelagert wird.

Ich bin sicher, Sie haben frustrierende Antworten bekommen, als ob Sie ein Idiot wären und die Microsoft-Entwickler immer Recht hätten usw.

Grundsätzlich ist Windows so programmiert, dass es den Standby-Speicher (Lesecache) dem Speichern von Daten aus der Auslagerungsdatei vorzieht. Die Idee dahinter ist, dass Sie möglicherweise Daten lesen möchten, die sich im Standby-Cache befinden. Wenn das passiert, haben Sie eine Leistungssteigerung.

Ich stimme dem nicht ganz zu. Meiner Meinung nach ist es „unvermeidlich“, dass Ihr System diese Daten irgendwann lesen möchte, wenn Sie Live-Daten in eine Auslagerungsdatei auslagern, und wenn dies geschieht, kommt es zu Verzögerungen, weil sie aus der Auslagerungsdatei gelesen wurden. Darüber hinaus ist der Overhead beim Lesen aus Auslagerungsdateien höher als beim direkten Lesen aus einem Dateisystem.

Auf meinem System beispielsweise lagert Windows das Energiespartool von Nvidia für mehrere Displays immer aus. Ich weiß nicht, warum. Irgendetwas im Algorithmus führt dazu, dass es diese App auswählt. Es lagert Auslagerungen aus, selbst wenn die RAM-Auslastung nur 5 % beträgt.

Meiner Meinung nach sollten Auslagerungsdateien nur zur Vermeidung von Katastrophen verwendet werden, im Grunde ähnlich dem Linux-Sysctl „swappiness=1“. Das ist im Grunde dasselbe wie das, was Sie in Ihrer Frage gefragt haben. Im Wesentlichen sind die einzigen Teile der RAM-Nutzung in Windows, die wichtig sind, „in Verwendung“ und „geändert“. Geändert ist der Schreibcache, der seine Daten offensichtlich auf die Festplatte übertragen muss, bevor er gelöscht werden kann, während das Löschen des Standby-Cache keine negativen Folgen hat.

Ich habe auf meinem 32-GB-Windows-System ziemlich viele Tests durchgeführt und konnte durch die Aktivierung der Auslagerungsdatei keinerlei Leistungssteigerung feststellen. Allerdings traten Leistungseinbußen auf, wenn ich versuchte, eine beliebige App zu verwenden, bei der die Auslagerungsdatei verzögert wurde.

Die klare Antwort, die ich auf die Frage gebe, welchen Weg Sie einschlagen sollten, lautet: Wenn die Systemstabilität Ihr Hauptziel ist, lassen Sie die Auslagerungsdatei aktiviert und stellen Sie sie auf eine Größe von mindestens 8 GB ein. Wenn Leistung Ihr Ziel ist und Sie insbesondere mindestens 32 GB RAM haben, deaktivieren Sie die Auslagerungsdatei auf jeden Fall.

verwandte Informationen