Windows 8 Hohe Systemspeicherauslastung

470
Claire Fey

Mein Problem scheint einfach zu sein. Mein Computer verwendet mehr physischen Speicher, als in der Summe meiner Programme tatsächlich berücksichtigt wird.

(Ausführen von Windows 8.1, neueste Patches)

What windows reports my total usage as

What the total system usage is

Ich benutze 7,5 GB. Die Gesamtnutzung beträgt 12 GB. Das Delta beträgt 4,5 GB. Das ist etwas, was ich als sehr hoch einstufen würde.

Die meisten Beiträge, die ich auf dieser Website gefunden habe, beziehen sich auf Treiberspeicherverluste, die sich auf den "ausgelagerten Pool" und den "nicht ausgelagerten Pool" auswirken, was zu einer hohen Auslastung führt. Mein Seiten- und nicht ausgelagerter Pool ist jedoch etwa 650 MB groß, was meines Erachtens nicht weit über dem 'Normalen' liegt und dieses Delta mit 4,5 GB nicht verursachen sollte. Um dies weiter zu untersuchen, bin ich sogar gelaufen poolmon.exeund habe keine derart undichten Treiber gefunden, als ich nach Verwendung sortiert wurde.

Poolmon screenshot

Meine Frage ist also einfach: Was gibt es? Wo bist du in Erinnerung?

Aktualisieren:

Ein freundlicher Benutzer verwies mich auf das Programm rammap, das detailliertere Beschreibungen der Speicherzuordnung enthält. Beim Ausführen habe ich festgestellt, dass 2 GB Arbeitsspeicher im Bereich "In Verwendung" für "Zugeordnete Dateien" zugewiesen wurden, was vermutlich ein Zwischenspeichern der Festplatte ist. Beim Aufrufen der Registerkarte "Physische Seiten" und Sortieren nach diesen Dateien erfuhr ich, dass viele der aktiven, zugeordneten Dateien Dateien waren, die von einer Torrent-Anwendung verwendet werden, die große Datendateien hostet. Durch das Beenden der Anwendung wurden 1,2 GB Festplatten-Caching in den Standby-Modus freigegeben, sodass ein Screenshot angezeigt wird, den Sie unten sehen.

Rammap

Das "Delta" ist auf 3,2 GB gesunken, was dem, was ich für normal halte, näher rückt, aber immer noch hoch ist. Wenn Sie jedoch den Rest der "zugeordneten Datei" von 800 MB subtrahieren, landen Sie bei 2.4 GB, was einfach dadurch erklärt werden könnte, dass die Anzahl der Benutzer im Task-Manager falsch ist.

Mit dieser Information bin ich jetzt nicht so sicher. Verstehe ich nur nicht die Erinnerung an die Buchhaltung? Wird der Abschnitt "gemeinsam nutzbar" in der Tabelle tatsächlich von Benutzerprogrammen verwendet und nicht im Benutzerbereich des Task-Managers berücksichtigt? Wenn ja, dann wäre dieses Problem eine Mischung aus mir nicht bewusst, dass das Zwischenspeichern von Festplatten unter "In Benutzung" / "Aktiv" -Speicher zählen kann und dass die Registerkarte "Benutzer" im Task-Manager ungenau ist.

0
Was meinen Sie mit "Systemspeicherauslastung" genau? Meinst du nur die Erinnerung, die benutzt wird? Außerdem haben Sie diese "Speicherlecks" markiert. Haben Sie Hinweise auf ein Leck? Haben Sie ein tatsächliches Problem oder müssen Sie nur wissen, wie Windows 8 Speicher verwendet? David Schwartz vor 6 Jahren 0
@ DavidSchwartz Ich mag den Ton Ihres Kommentars nicht. Die Systemspeicherbelegung bezieht sich auf die Speicherbelegung, die von Benutzerprogrammen nicht berücksichtigt wird. Das _actual_-Problem ist das festgestellte Problem, dass die Systemspeicherauslastung ungewöhnlich hoch ist, höher als ich auf anderen Computern von mir festgestellt habe, die auch Windows ausführen und ähnliche Workloads ausführen. Brauche ich Hilfe, um zu verstehen, wie W8 Speicher verwendet? Könnte sein? Erläutern Sie mich, indem Sie die Frage beantworten, die mich darüber informiert, wo genau ich falsch argumentiere. Ich schließe die Frage umgehend und stelle die Antwort als richtig ein. Claire Fey vor 6 Jahren 0
Also - [diese Frage wurde angesprochen (https://superuser.com/questions/1153325/windows-8-1-64-bit-high-memory-usage/1154417) als mögliches Duplikat. Es fühlt sich jedoch so an, als wäre diese Frage viel besser als die andere, und ich habe das Gefühl, wir möchten, dass sie ihren Lauf nimmt, wenn wir sie in beiden Richtungen schließen, vor allem, wenn die Ursache unterschiedlich ist Journeyman Geek vor 6 Jahren 0
@JourneymanGeek Vielen Dank, dass Sie meinen Beitrag bearbeitet haben und die Bilder standardmäßig anzeigen. Ich wusste nicht, dass ich das aufgrund meiner Noob-Ness tun könnte;) Claire Fey vor 6 Jahren 0
Stellen Sie Bilder von [RAMMap] (https://docs.microsoft.com/de-de/sysinternals/downloads/rammap) bereit. Die Nutzung des Kernel-Pools ist in Ordnung. magicandre1981 vor 6 Jahren 0
@ magicandre1981 fertig. Angesichts der neuen Informationen fange ich an, ein bisschen zu kriechen, dass dies nur eine Kombination von Verwirrung darüber ist, wie das Zwischenspeichern von Festplatten funktioniert und wie Benutzerprogramme im Task-Manager abgerechnet werden. Ist dieses Problem gelöst? Meinungen geschätzt. Claire Fey vor 6 Jahren 0
Die meiste Verwendung kommt von privaten Bytes (7 GB, die Sie in Taskmgr sehen). welche Prozesse laufen Sie? Die andere Verwendung in der aktiven Spalte ist das Delta magicandre1981 vor 6 Jahren 0
@ magicandre1981 Ich bin mir nicht sicher, was Sie fragen. Möchten Sie eine Liste aller auf meinem Computer laufenden Programme? Claire Fey vor 6 Jahren 0
Suchen Sie in der Registerkarte "Prozess", welche Prozesse den Arbeitsspeicher belegen. Suchen Sie auch in taskmgr-> perf-> cpu nach der Griffzahl. Wenn dieser Wert sehr hoch ist (über 100.000), kann es sein, dass Zombie-Prozesse den Arbeitsspeicher aufbrauchen. (https://randomascii.wordpress.com/2018/02/11/zombie-processes-are-eating-your-memory/) magicandre1981 vor 6 Jahren 0
@ magicandre1981 Oh, ich sehe was du sagst! Entschuldigung, ich verstehe jetzt. Ich hatte schon Zombies ... sehr nervig. Zum Glück bin ich nicht hier. Die 7,3 GB, die derzeit von meinen Programmen verwendet werden, sind recht legitim (Unity, IDEs und viele andere Firefox-Instanzen sowie einige andere Programme). Meine Verwirrung ist auf die Tatsache zurückzuführen, dass mein Gesamtverbrauch bei 10,5 GB liegt, was bedeutet, dass 3,2 GB „fehlen“. In früheren Interaktionen mit Fenstern bin ich nicht daran gewöhnt, so hohe Deltas zu erzeugen. Was ich versuche zu unterscheiden, ist, ob dies legitim oder abnormal ist und wenn letztere: wie zu beheben. Claire Fey vor 6 Jahren 0
3.2 ist die Summe der anderen Dinge ((nicht ausgelagerter Pool, zugeordneter Pool, gemeinsam genutzt und der andere, den Sie in RAMMap sehen). magicandre1981 vor 6 Jahren 0
@ magicandre1981 also ist das deiner Meinung nach normal? Beschwere ich mich über nichts und missverstehe nur die Speicherabrechnung? Das ist meine grundlegende Frage. Claire Fey vor 6 Jahren 0
Commit ist etwas hoch, der Rest scheint normal zu sein. Suchen Sie erneut nach Zombie-Prozessen magicandre1981 vor 6 Jahren 0
"Zugeordnete Dateien" ist viel mehr als "Festplatten-Caching". Alle Codedateien (exe, dlls usw.) befinden sich in dieser Kategorie. Programme, die große Dateien verwenden, behandeln sie häufig auch über Dateizuordnung (im Gegensatz zum herkömmlichen Lese- / Schreibzugriff). Es ist nicht wirklich möglich, in der RAMmap-Anzeige die Speicherbelegung "zugeordneter Dateien" aufgrund der proaktiven oder reaktiven Zwischenspeicherung des Betriebssystems aus Dateien, die zugeordnet werden, zu unterscheiden, da sie auf diese Weise aktiv verwendet werden. Jamie Hanrahan vor 6 Jahren 0

1 Antwort auf die Frage

0
David Schwartz

Windows 8 setzt wie fast alle modernen Betriebssysteme alles daran, so viel Speicher wie möglich zu nutzen. Warum? Weil nicht genutzter Speicher für immer verschwendet wird.

Wenn ein System über 8 GB Arbeitsspeicher verfügt und nur 7 GB verwendet, erhält es nichts. Es kann später 9 GB nicht verwenden. Es hat einfach für immer jeden Vorteil verloren, den es von dieser zusätzlichen 1 GB hätte gewinnen können, solange der Speicher frei ist.

Angenommen, Ihr System verfügt über viel freien Arbeitsspeicher und Sie führen ein Programm aus. Wenn das Programm beendet ist, hat das System zwei Möglichkeiten. Es könnte das Programm (die eigentliche ausführbare Datei auf der Festplatte) im Speicher halten oder den Speicher freigeben, der die Programmdatei enthielt.

Wenn es die Erinnerung freigibt, muss es sich die Mühe machen, es freizugeben. Wenn er diese Erinnerung jemals wieder verwenden möchte, muss er sich die Mühe machen, ihn freizugeben. Wenn das Programm erneut ausgeführt wird, muss es von der Festplatte geladen werden. Dreifaches Yuck

Wenn es den Speicher nicht freigibt, muss er sich nicht die Mühe machen, ihn freizugeben. Wenn der Speicher für einen anderen Zweck verwendet werden soll, muss er ihn nicht freigeben und einen Schritt speichern. Wenn das Programm erneut ausgeführt wird, muss es nicht von der Festplatte geladen werden. Dreifacher Sieg Da dieses Programm derzeit nicht von einem Prozess ausgeführt wird, wird dem Speicher natürlich kein Prozess zugeordnet.

Was also passiert, ist, dass Ihr System über ausreichend freien Speicher verfügt, so dass es auf sehr effiziente Weise arbeiten kann, ohne unnötigen Speicherplatz zu verbrauchen und unnötigen Speicherplatz freizugeben. Stattdessen kann der Speicher effizient von einer Verwendung zur anderen überführt werden, und wenn die Daten in diesem Speicher benötigt werden, kann die Platten-E / A vermieden werden.

Es ist rundum ein Gewinn. Der Speicher speichert Daten, die das System hofft, dass ein zukünftiger Prozess nützlich sein könnte, und vermeidet außerdem unnötige Auslösungen durch die Liste der freien Speicher, um Speicher freizugeben, nur um ihn erneut markieren zu müssen. Moderne Betriebssysteme müssen nur eine sehr kleine Menge Speicher freihalten, gerade genug, um Notfallsituationen (z. B. Seitenfehler und Speicheranforderungen von Interrupt-Code) zu bewältigen, bei denen der Speicher nicht einfach von einer Verwendung zur anderen übergehen kann.

Danke für deine Antwort, David. Ich habe ein Verständnis für die Idee, dass absolut freier Speicher Speicherplatz verschwendet, da er stattdessen verwendet werden kann, um Daten für die zukünftige Verwendung zu zwischenspeichern, anstatt sie von der Festplatte zu laden. Was ich ** nicht verstehe ** ist, warum der zum Zwischenspeichern verwendete Speicher nicht unter "Cached" / "Standby" ("Speicher, der zwischengespeicherte Daten und Code enthält, der derzeit nicht verwendet wird") im Task-Manager aufgeführt ist? Ich hatte den Eindruck, dass dort zwischengespeicherte Daten enthalten waren und nicht unter der Metrik "In Use" ("Von Prozessen, Treibern oder dem Betriebssystem belegter Speicher"). Claire Fey vor 6 Jahren 0
@clairefey - fyi: Mark Russinovich erklärt die Geheimnisse der Speicherverwaltung: https://www.youtube.com/watch?v=AjTl53I_qzY https://www.youtube.com/watch?v=6KZdNsq1YV4 akira vor 6 Jahren 0
@akira Vielen Dank, ich werde morgen früh die sehen. Claire Fey vor 6 Jahren 0
Sie werden begeistert sein. Übrigens: Mark hat die Tools geschrieben, auf die Sie verwiesen wurden. akira vor 6 Jahren 0
Sie verpassen einen sehr wichtigen Punkt: Fehlen Beweise für einen Speicherleck (das Sie nicht haben), desto weniger freier Speicher, desto besser. Betriebssysteme sind so konzipiert, dass sie so wenig Speicher wie möglich freihalten und versuchen, das notwendige Minimum zu erreichen. David Schwartz vor 6 Jahren 0
@DavidSchwartz Die Beschwerde ergibt sich nicht aus dem Mangel an freiem Speicher, sondern aus dem Mangel an verfügbarem Speicher. Ich vermisse deinen Punkt überhaupt nicht. Das Zwischenspeichern von Festplatten ist offensichtlich normal. Das Zwischenspeichern von Datenträgern kann jedoch angehalten werden, um Platz für weitere Programme zu schaffen, weshalb es unter "Standby" aufgeführt ist (und "Standby" fällt unter "Verfügbar" sowie "Frei"). Mein Problem ist, dass es ** In gibt Verwenden Sie ** Speicher, der nicht berücksichtigt wird. Claire Fey vor 6 Jahren 0
@ClaireFey Das ist kein Problem, das ist möglicherweise ein Symptom eines Problems. Hast du ein Problem? Ist das System langsam? Gibt es zu viele Festplatten-E / A? David Schwartz vor 6 Jahren 0