Warum ist mein Speicher zu 65% ausgelastet, wenn keine Programme ausgeführt werden?

1096
Martin

Ich weiß nicht, warum mein Speicher zu 65% ausgenutzt wird, obwohl ich keine Programme laufe.

Und manchmal steckt es fest.

Meine Laptop-Spezifikationen:

Acer Aspire VX 15
Betriebssystem: Windows 10 x64 aktuellstes Update
RAM: 24 GB DDR4 2400
SSD: 512
GB HDD: 1 TB
CPU: corei7 7. Generation 7700HQ 2.8
Grafik: GeForce GTX 1050Ti GDDR5

Screenshot der Prozesse

Screenshot der Prozesse

Screenshot der Leistung

Screenshot von RAMMap

Screenshot von RAMMap

1
... und was ist Ihrer Meinung nach das Problem mit dem verwendeten RAM? RAM ist schneller als HD oder SSD. Warum also leer, damit es sich im Leerlauf befindet? Tetsujin vor 5 Jahren 3
Da es sich bei dieser Frage um Speicher handelt, ist es hilfreich, wenn Sie die Anzeige des Task-Managers nach "Speicher" statt nach "CPU" sortieren, damit wir sehen können, was den meisten Arbeitsspeicher auf Ihrem PC belegt. Dass Cortana jedoch mehr als 100 MB Arbeitsspeicher verwendet, ist eine riesige rote Flagge. InterLinked vor 5 Jahren 0
Sie können im Task-Manager Screenshots der Registerkarte Details (Sortierspeicher absteigend) und @Martin-Registerkarte Leistung (Speicher auswählen) auswählen. Außerdem können Sie mit [RAMMap] nachsehen (https://docs.microsoft.com/de-DE/). sysinternals / downloads / rammap) (zumindest ein Screenshot der ersten Registerkarte, aber wenn Sie Datei => Speichern einer .RMP-Datei und geben Sie diese an, noch besser). Bob vor 5 Jahren 2
@Tetsujin Auf der Registerkarte Task-Manager-Prozesse sollte der verwendete Cache-Speicher nicht angezeigt werden. Cache-Speicher steht noch * zur Verfügung *, auch wenn technisch nicht "frei". Diese Frage stellt die Frage, warum die verwendete (dh nicht verfügbare) Nummer so hoch ist und keine unfreien Zahlen. Bob vor 5 Jahren 0
Ich stimme mit Bob überein. Ein Screenshot der Speicheransicht auf der Registerkarte "Leistung" ist * erforderlich *, um sogar die Situation einzuschätzen. Speicherverluste sind oft nicht (direkt) mit Prozessen verbunden. Daniel B vor 5 Jahren 1
Fügen Sie wie oben einen Screenshot der Registerkarte "Perofmance" des Task-Managers hinzu. Wählen Sie in der Liste links den Eintrag "Speicher" aus. Wie viel kostet "_in use_" / "_cache_". Cache ist immer eine gute Idee, und die Verwendung von RAM ist immer von Vorteil. Attie vor 5 Jahren 1
@ Attie, ich habe jetzt die Registerkarte "Leistung" hinzugefügt. In meinem Speicher werden 8 GB angezeigt, aber ich habe kein Programm ausgeführt. Martin vor 5 Jahren 0
@ Bob, ich habe eine RAMMap-Datei hinzugefügt. https://files.fm/u/avndc5eu#_ Martin vor 5 Jahren 0
"Und manchmal steckt es fest." -- Was bedeutet das? David Schwartz vor 5 Jahren 0
@Martin Es wäre sinnvoller, wenn Sie zu einem Zeitpunkt erfassen könnten, zu dem der Speicher stark beansprucht wird. In Ihrem Screenshot ist "Page Table" jedoch ungewöhnlich hoch. Mein erster Verdacht wäre ein Handle-Leck oder möglicherweise Zombie-Prozesse. Ich werde in einer Minute eine Antwort aufschreiben. Bob vor 5 Jahren 0
@Martin Obwohl der RAMMap-Bericht eine große Hilfe war, habe ich ihn aus der eigentlichen Frage heraus bearbeitet, da auf diesem Download-Link ein Verfallsdatum / ein automatisches Löschen vorhanden ist. Generell möchten wir, dass unser Q & As auf lange Sicht nützlich ist. Ich bereinige also die präventive Verknüpfung. Es wird in der Zwischenzeit in den Kommentaren für jeden anderen sein, der antworten möchte. Bob vor 5 Jahren 0

4 Antworten auf die Frage

1
David Schwartz

Freier RAM ist eine Funktion, die für immer verschwendet wird. Ein System mit 16 GB RAM, das heute nur 8 GB benötigt, kann morgen keine 24 GB verwenden. Sie können RAM nicht für später speichern. Aus diesem Grund bemühen sich moderne Betriebssysteme, den Arbeitsspeicher so lange wie möglich zu verwenden, um so wenig Arbeitsspeicher wie möglich zu verschwenden.

Angenommen, Ihr System würde mehr RAM frei machen, das bedeutet, dass jetzt einige Anstrengungen erforderlich sind, um den RAM frei zu machen. Da Ihr System bereits über ausreichend freien RAM verfügt, dürfte sich dieser Aufwand wahrscheinlich nicht auszahlen. Wenn das System den freigegebenen Arbeitsspeicher verwenden möchte, muss es erneut verwendet werden, wobei mehr Aufwand erforderlich ist, um die Arbeit rückgängig zu machen, mit der es freigegeben wurde.

Wenn zum Beispiel ein Programm in Ihrem System eine Datei liest oder schreibt und das System über ausreichend RAM verfügt, werden diese Daten im Speicher gehalten. Wenn ein anderes Programm diese Datei liest, wird die Datenträger-E / A gespeichert. Wenn dieser Speicher später zu einem anderen Zweck benötigt wird, kann er einfach von einer Verwendung zur anderen umgestellt werden, ohne die Mühe auf sich zu nehmen, ihn freigeben zu müssen, nur um ihn erneut zu verwenden.

Mit anderen Worten, Ihr Betriebssystem ist effizient. Fast alle modernen Betriebssysteme funktionieren auf diese Weise.

Sie wären korrekt, wenn sie nach tatsächlich freiem RAM gefragt hätten, aber AFAIKs "Speicherbelegung", wie sie im Task-Manager angezeigt wird und in den Screenshots angezeigt wird, enthält * nicht * den Festplatten-Cache. Der Festplatten-Cache wird als verfügbar gezählt und daher nicht "verwendet". Auf der Registerkarte "Leistung" können Sie sehen, wie er getrennt ist. Häufige Gründe, die ich für seltsam hohe "benutzte" Arbeitsspeicher gesehen habe, sind Handle-Lecks und Treibersperrspeicher. Bob vor 5 Jahren 0
Ich spreche nicht über den Festplatten-Cache. Ich spreche über alle Zwischenspeicherungen, einschließlich der Zwischenspeicherung von Dateisystem-Metadaten und so weiter. Sogar Caches auf Anwendungsebene. Was ich damit sage, ist in Bezug auf die Speicherauslastung im Allgemeinen zutreffend und in keiner Weise spezifisch für den Festplattencache. Dies ist jedoch das bemerkenswerteste Beispiel für diese Argumentation, die die gesamte System- und Anwendungsarchitektur durchdringt. David Schwartz vor 5 Jahren 0
Caches auf Anwendungsebene * würden * im privaten Arbeitssatz des Prozesses angezeigt, so dass es sich nicht um diesen "fehlenden" RAM handeln würde. Ich glaube auch, dass Dateisystem-Metadaten usw. im "Cached" -Zähler angezeigt werden, der noch als "Verfügbar" klassifiziert wird. In jedem Fall, basierend auf dem RAMMap-Bericht, bin ich zuversichtlich, dass dieser spezielle Fall auf undichte Prozess-Handles zurückzuführen ist, die zu einer (großen) Anzahl von Zombie-Prozessen führen. Ich bevorzuge nur, die eigentliche Ursache zu ermitteln, bevor ich behaupte, dass alles wie beabsichtigt funktioniert - manchmal nicht. Bob vor 5 Jahren 1
1
Bob

tl; dr: Laden Sie alle 5 Dateien von FindZombieHandles herunter, führen Sie sie aus und sehen Sie, welcher Prozess alle Zombies erstellt.


Sie haben dieses Problem zu Recht bemerkt. 1

Es gibt einige häufige Ursachen:

  • Ein Handle-Leck, insbesondere von GDI-Objekten
  • Ein Handle-Leck, das zu Zombie-Prozessen führt
  • Treibersperrter Speicher, der auf einen fehlerhaften Treiber oder sogar auf einen normalen Betrieb zurückzuführen ist (z. B. "VMware Ballooning" wird Ihren Arbeitsspeicher absichtlich "fressen", um ihn unter den VMs auszugleichen)

Weitere Informationen erhalten

Als Erstes können wir das ausgezeichnete RAMMap- Tool verwenden, mit dem die breiten Kategorien identifiziert werden, unter denen die Speicherauslastung liegt. Diese sagen nicht unbedingt aus, was es war, aber geben Ihnen einen Vorschlag, wo Sie als nächstes suchen müssen.

In Ihrem speziellen Fall verweise ich auf den von Ihnen zur Verfügung gestellten Screenshot . Sie möchten sich die ActiveSpalte ansehen - die StandbySpalte enthält Caches, die unter "verfügbarer" Arbeitsspeicher fallen. Die Bekanntmachung Page Tableist sehr hoch - ich würde erwarten, dass sie sich in einer Größe von unter 512 MB befindet, nicht weit über 2 GB!

Verengung

Von hier aus können wir vermuten, dass dies wahrscheinlich auf Zombie-Prozesse zurückzuführen ist. Ein Zombie-Prozess kann in Windows auftreten, wenn ein Prozess einen anderen startet, der einen Handle für den gestarteten Prozess enthält. Wenn der gestartete Prozess beendet ist, wird erwartet, dass der Startprozess diese Handles freigibt. Wenn dies nicht geschieht, bleiben sie so lange in der Nähe, wie der Startvorgang besteht.

Auf der Registerkarte "Prozesse" von RAMMap können Sie tatsächlich eine weitere Bestätigung erhalten. Beachten Sie in Ihrem Fall, Sortieren nach Prozessnamen, die Tausende von tasklist.exeund Hunderten von powershell.exeInstanzen rumhängen. In der Tat ist alles, was mit privatem Speicher belegt 0 Kist, die rote Flagge eines Prozesses, der beendet wurde, aber immer noch im Zombie-Modus ist.

Nun müssen Sie herausfinden, welcher Prozess alle diese Zombies erzeugt. Es gibt einige Möglichkeiten, dies zu tun. Sie können den Task-Manager auf der Registerkarte "Details" verwenden und die Spalte "Handles" hinzufügen. Jeder Prozess, der eine große Anzahl von Zombies enthält, hat auch eine zu große Anzahl von Griffen. Sie können Process Explorer auch verwenden, um anzuzeigen, welche Handles für einen bestimmten Prozess geöffnet sind.

Die einfachste Möglichkeit ist jedoch die Verwendung von FindZombieHandles 2 (Sie müssen alle 5 Dateien in dasselbe Verzeichnis herunterladen). Wenn Sie dieses Tool (als Administrator) ausführen, sollte es Ihnen sagen, welcher Prozess alle diese Zombies erstellt und speichert. Von dort aus können Sie den Prozess beenden, die Anwendung deinstallieren oder dem Entwickler melden.


1 Wie bereits an anderer Stelle erläutert, wird auf der Registerkarte "Prozesse" des Task-Managers die Speichernutzung mit Ausnahme von Festplattencaches angezeigt. Die allgemeine (Linux) Erklärung von "freier Arbeitsspeicher ist verschwenderisch" trifft normalerweise nicht zu. Für den Task-Manager ist der Festplatten-Cache Teil des verfügbaren Speichers. "Freier" Speicher wird nicht erwähnt.

2 Ein großes Dankeschön an Bruce Dawson für dieses Tool.

-2
Raven

... Gemäß diesem Screenshot führen Sie mindestens 11 Programme aus und Sie haben auch die Suchindexierung oder den "Desktop Window Manager" nicht deaktiviert oder möglicherweise keine anderen Dienste usw. sowie Einträge und Animationen von msconfig usw.

-2
Michael Frank

Ihr Computer verwendet RAM, weil er eingeschaltet ist.

Um dies weiter auszubauen, ist das Betriebssystem ein Programm.

  • Forscher
  • Taskmanager
  • Cortana
  • Schnipsel
  • CTF Loader
  • VyprVPNService

Alles oben aufgeführte und alles in Ihrem Screenshot ist ein Programm, das auf dem Betriebssystem ausgeführt wird. Sie sind alles Programme.

Ja, aber er hat 24 GB RAM, und diese Liste sollte sich nicht in der Nähe von 62% von 24 GB befinden. Aganju vor 5 Jahren 1
Stimme dir vollkommen zu @Aganju Jerry vor 5 Jahren 0