web-dev-qa-db-fra.com

Comment trouver la source de fuite de mémoire dans Windows 7?

J'ai une machine Windows 7 qui continue à fonctionner avec peu de RAM. Je peux voir la RAM libre _ descendre pendant quelques heures jusqu'à ce que la machine ne réponde plus. J'ai vérifié la liste des processus et aucun d'entre eux ne prend autant de RAM.

J'ai également vérifié le nombre de descripteurs par processus et divers autres indicateurs, mais je ne comprends toujours pas pourquoi la machine manque de RAM.

Existe-t-il un bon moyen de vérifier comment la mémoire est utilisée dans Windows?

Modifier

Voici le résultat de tasklist quelques minutes avant que la machine ne réponde plus:

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

À ce stade, wmic OS get FreePhysicalMemory /Value indique environ 400 Mo de mémoire disponible sur 2 Go.

RamMap:

enter image description here

Gestionnaire de tâches:

enter image description here

10
laurent

La mémoire haute provient d'une utilisation élevée Table Table . Pour voir quels processus l'utilisent, , installez Windows Performance Toolkit , ouvrez une invite de commande en tant qu'administrateur et exécutez cette commande:

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

Ouvrez le MemUsage.etl avec Windows Performance Analyzer (WPA.exe), faites glisser le graphique "ResidentSet" dans la liste de graphiques de gauche dans le volet d'analyse:

enter image description here

Maintenant, déplacez la colonne "Catégorie de page" sur le côté gauche et développez l'entrée "Table de page":

enter image description here

Ici, vous voyez les processus qui ont une utilisation élevée de la table. Sur le site de droite (après la ligne bleue), vous voyez l'utilisation de la mémoire du tableau de pages en Mo pour chaque processus.

8
magicandre1981

les seules choses "étranges" que je peux voir ici sont les suivantes:

  • vous avez un processus appelé scan.exe qui éloigne maintenant 98% de l'unité centrale de traitement
  • vous avez un processus appelé fssm32.exe qui a 9 millions de défauts de page. fssm32.exe ressemble à un programme du scanner de virus f-secure.
  • vous avez également un processus appelé SAV32CLI.EXE qui stocke encore 130 Mo + de mémoire. il semble que vous vous sentiez mieux protégé si vous exécutiez 2 analyseurs de virus: f-secure et sophos en même temps.

pour moi, la capture d'écran rammap me convient parfaitement: vous avez un pool de ~ 400 Mo de fichiers en cache, dont 85 Mo en utilisation active, 300 Mo + en mode veille (ce qui signifie qu'ils sont libérés dès que vous avez besoin de plus de mémoire vive). En regardant votre quantité de processus sshd.exe et bash.exe, cela semble également légitime.

la meilleure façon d'apprendre le fonctionnement interne de la gestion de la mémoire par Windows est le suivant: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 .. vous utilisez déjà certains des outils développés par l’orateur.

0
akira