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 tasklist
einiger 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 /Value
ca. 400 MB freier Speicher von 2 GB gemeldet.
RamMap:
Taskmanager:
quelle
Antworten:
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:
Öffnen Sie den
MemUsage.etl
mit Windows Performance Analyzer (WPA.exe) und ziehen Sie das Diagramm "ResidentSet" aus der linken Diagrammliste in den Analysebereich:Verschieben Sie nun die Spalte "Seitenkategorie" nach links und erweitern Sie den Eintrag "Seitentabelle":
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.
quelle
xperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
Die einzigen "seltsamen" Dinge, die ich hier sehen kann, sind folgende:
scan.exe
der gerade 98% CPU verbrauchtfssm32.exe
mit 9 Millionen Seitenfehlern.fssm32.exe
sieht aus wie ein Programm vom f-Secure Virenscanner.SAV32CLI.EXE
der 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 .
quelle