Wie finde ich die Quelle des Speicherverlusts in Windows 7?

10

Ich habe einen Windows 7-Computer, auf dem der Arbeitsspeicher immer knapp wird. Ich kann sehen, dass der freie Arbeitsspeicher einige Stunden lang ausfällt, bis der Computer nicht mehr reagiert. Ich habe die Prozessliste überprüft und keiner von ihnen benötigt so viel RAM.

Ich habe auch die Anzahl der Handles pro Prozess und verschiedene andere Indikatoren überprüft, kann aber immer noch nicht feststellen, warum der Maschine nicht mehr genügend RAM zur Verfügung steht.

Gibt es eine gute Möglichkeit zu überprüfen, wie der Speicher in Windows verwendet wird?

Bearbeiten

Hier ist das Ergebnis tasklisteiniger Minuten, bevor die Maschine nicht mehr reagiert:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        300 K
smss.exe                       196 Services                   0      1,024 K
csrss.exe                      272 Services                   0      4,336 K
wininit.exe                    320 Services                   0      4,184 K
csrss.exe                      332 Console                    1      3,516 K
winlogon.exe                   372 Console                    1      6,316 K
services.exe                   416 Services                   0      8,112 K
lsass.exe                      432 Services                   0     10,088 K
lsm.exe                        440 Services                   0      3,664 K
svchost.exe                    548 Services                   0      8,152 K
svchost.exe                    620 Services                   0      6,564 K
svchost.exe                    660 Services                   0     15,764 K
LogonUI.exe                    724 Console                    1     18,428 K
svchost.exe                    768 Services                   0      7,992 K
svchost.exe                    828 Services                   0      9,724 K
svchost.exe                    852 Services                   0     28,092 K
svchost.exe                    176 Services                   0     13,096 K
spoolsv.exe                    824 Services                   0     10,608 K
svchost.exe                    952 Services                   0     11,632 K
svchost.exe                   1076 Services                   0      8,524 K
fshoster32.exe                1120 Services                   0      9,148 K
fsorsp.exe                    1200 Services                   0      8,036 K
fsgk32.exe                    1324 Services                   0      3,084 K
cygrunsrv.exe                 1552 Services                   0      5,852 K
conhost.exe                   1864 Services                   0      2,996 K
sshd.exe                      1896 Services                   0      7,804 K
FSMA32.EXE                    2024 Services                   0      1,628 K
svchost.exe                   1320 Services                   0      5,092 K
fssm32.exe                    1704 Services                   0      2,196 K
FSHDLL64.EXE                  2120 Services                   0        644 K
SearchIndexer.exe             3260 Services                   0     13,596 K
sshd.exe                    138920 Services                   0      8,696 K
sshd.exe                    138448 Services                   0      8,696 K
sshd.exe                    138660 Services                   0      8,696 K
bash.exe                    137924 Services                   0      5,380 K
bash.exe                    137820 Services                   0      3,832 K
SAV32CLI.EXE                136344 Services                   0    133,868 K
WmiPrvSE.exe                139444 Services                   0      7,168 K
sshd.exe                    139672 Services                   0      8,692 K
sshd.exe                    139876 Services                   0      8,684 K
bash.exe                    139992 Services                   0      5,432 K
bash.exe                    140040 Services                   0      3,996 K
bash.exe                    140200 Services                   0      5,400 K
bash.exe                    139424 Services                   0      4,048 K
typeperf.exe                139300 Services                   0      5,372 K
sleep.exe                   138268 Services                   0      2,272 K
sshd.exe                    139612 Services                   0      7,168 K
sshd.exe                    137720 Services                   0      5,700 K
bash.exe                    139524 Services                   0      5,304 K
bash.exe                    138952 Services                   0      3,756 K
tasklist.exe                137580 Services                   0      5,164 K
bash.exe                    139460 Services                   0      5,452 K
bash.exe                    139796 Services                   0        104 K

Zu diesem Zeitpunkt werden wmic OS get FreePhysicalMemory /Valueca. 400 MB freier Speicher von 2 GB gemeldet.

RamMap:

Geben Sie hier die Bildbeschreibung ein

Taskmanager:

Geben Sie hier die Bildbeschreibung ein

Laurent
quelle
1
Können Sie Ihren Computer neu starten und einen Screenshot Ihrer Task-Manager-Prozesse veröffentlichen? Und stellen Sie sicher, dass Sie die Prozesse aller Benutzer anzeigen. Wenn Sie nach einem Neustart mehr als 50-60 haben, gibt es definitiv Dinge, die Sie tun können, aber wenn nichts
faul
1
Haben Sie nicht mehr genügend virtuellen oder physischen Speicher? Die Lösung und Ursache sind unterschiedlich. Eine Warnung zu wenig virtuellem Speicher ist ein Konfigurationsproblem. Da der physische Speicher niedrig ist, müssen zu viele Prozesse ausgeführt werden.
Ramhound
1
Haben Sie Hinweise darauf, dass die Ursache ein Speicherverlust ist? Es hört sich so an, als hätten Sie gute Beweise dafür, dass es sich nicht um einen Speicherverlust handelt. (Obwohl es ein kaputter Fahrer sein könnte, denke ich.)
David Schwartz
Danke für die Rückmeldung. Ich habe dem Beitrag weitere Informationen hinzugefügt, insbesondere die Aufgabenliste. Es ist der freie physische Speicher, der im Laufe der Zeit immer weiter abnimmt. Ist es möglich zu überprüfen, wie es verwendet wird?
Laurent
1
Post Screenshots von RAMMAp: technet.microsoft.com/en-us/sysinternals/ff700229.aspx
magicandre1981

Antworten:

8

Die hohe Speicher Usgae kommt von einem hohen Seitentabelle Nutzung. Um zu sehen, welche Prozesse es verwenden, installieren Sie das Windows Performance Toolkit , öffnen Sie eine Eingabeaufforderung als Administrator und führen Sie diesen Befehl aus:

xperf -on ReferenceSet -BufferSize 1024 -MaxFile 512 -FileMode Circular  && timeout 5 && xperf -d MemUsage.etl

Öffnen Sie den MemUsage.etlmit Windows Performance Analyzer (WPA.exe) und ziehen Sie das Diagramm "ResidentSet" aus der linken Diagrammliste in den Analysebereich:

Geben Sie hier die Bildbeschreibung ein

Verschieben Sie nun die Spalte "Seitenkategorie" nach links und erweitern Sie den Eintrag "Seitentabelle":

Geben Sie hier die Bildbeschreibung ein

Hier sehen Sie die Prozesse, die den hohen Pagetable-Verbrauch haben. Auf der rechten Seite (nach der blauen Linie) sehen Sie die Auslastung des Seitentabellenspeichers in MB für jeden Prozess.

magicandre1981
quelle
In Windows 8.1 sehe ich 'Residentset' nicht als verfügbare Grafikoption. Wie kann ich es bekommen? eine andere xperf-flag?
Akira
Ich beantworte meinen eigenen Kommentar: Update xperf.
Akira
Dies funktioniert nicht für mich in Windows 7 - der erste Aufruf von xperf gibtxperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
Benshepherd
@benshepherd für mich funktioniert es. Stellen
magicandre1981
1
Ich entdeckte schließlich das Problem, es war Lenovo „Rapidboot Shield“ und Entfernen es mein Problem gelöst: superuser.com/a/850346/79763
sparrowt
0

Die einzigen "seltsamen" Dinge, die ich hier sehen kann, sind folgende:

  • Sie haben einen Prozess namens, scan.exeder gerade 98% CPU verbraucht
  • Sie haben einen Prozess fssm32.exemit 9 Millionen Seitenfehlern. fssm32.exesieht aus wie ein Programm vom f-Secure Virenscanner.
  • Sie haben auch einen Prozess namens, SAV32CLI.EXEder weitere 130 MB + Speicher verbraucht. Es sieht so aus, als ob Sie sich besser geschützt fühlen, wenn Sie zwei Virenscanner gleichzeitig ausführen: f-Secure und Sophos.

Der Rammap-Screenshot sieht für mich in Ordnung aus: Sie haben einen Pool von ~ 400 MB zwischengespeicherten Dateien, von denen 85 MB aktiv verwendet werden, 300 MB + im Standby-Modus (dh sie werden freigegeben, sobald Sie mehr RAM benötigen). Wenn Sie sich die Anzahl der Prozesse sshd.exe und bash.exe ansehen, sieht dies ebenfalls legitim aus.

Der beste Weg, um zu erfahren, wie Windows den Speicher verwaltet, ist dieser Vortrag hier: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 .. Sie verwenden bereits einige der vom Lautsprecher entwickelten Tools .

Akira
quelle
1
Meine Microsoft-Kontakte (Microsoft Premier Field Engineers) sagten mir auch, dass mehrere 100 MB Seitentabellen für Windows nicht normal sind.
magicandre1981