¿Cómo encontrar la fuente de pérdida de memoria en Windows 7?

10

Tengo una máquina con Windows 7 que sigue funcionando con poca RAM. Puedo ver la RAM libre bajando en unas pocas horas hasta que la máquina deja de responder. He revisado la lista de procesos y ninguno de ellos toma tanta RAM.

También he comprobado la cantidad de identificadores por proceso y varios otros indicadores, pero aún no puedo encontrar por qué la máquina se queda sin RAM.

¿Hay alguna buena manera de verificar cómo se usa la memoria en Windows?

Editar

Aquí está el resultado de tasklistunos minutos antes de que la máquina deje de responder:

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

En ese momento, wmic OS get FreePhysicalMemory /Valueinforma sobre 400 MB de memoria libre de 2GB.

RamMap:

ingrese la descripción de la imagen aquí

Administrador de tareas:

ingrese la descripción de la imagen aquí

Laurent
fuente
1
¿Puedes reiniciar tu computadora y publicar una captura de pantalla de tus procesos del Administrador de tareas? Y asegúrese de mostrar los procesos de todos los usuarios, por favor. Si tiene más de 50-60 después de un reinicio, definitivamente hay cosas que puede hacer, pero si nada parece sospechoso, las cosas podrían ponerse difíciles ...
MonkeyZeus
1
¿Se está quedando sin memoria virtual o memoria física? La solución y la causa son diferentes. Una advertencia de memoria virtual baja es un problema de configuración, ya que tiene poca memoria física, significa que tiene que ejecutar muchos procesos.
Ramhound
1
¿Tiene alguna evidencia de que la causa es una pérdida de memoria? Parece que usted tiene buena evidencia de que es no una pérdida de memoria. (Aunque podría ser un conductor arrestado, supongo).
David Schwartz
Gracias por la respuesta. He agregado más información a la publicación, en particular la lista de tareas. Es la memoria física libre que sigue disminuyendo con el tiempo. ¿Es posible verificar cómo se usa?
Laurent
1
publicar capturas de pantalla de RAMMAp: technet.microsoft.com/en-us/sysinternals/ff700229.aspx
magicandre1981

Respuestas:

8

El uso de memoria alta proviene de un uso elevado de la tabla de páginas . Para ver qué procesos lo usan, instale Windows Performance Toolkit , abra un símbolo del sistema como administrador y ejecute este comando:

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

Abra el MemUsage.etlanalizador de rendimiento de Windows (WPA.exe), arrastre y suelte el gráfico "ResidentSet" de la lista de gráficos de la izquierda en el panel de análisis:

ingrese la descripción de la imagen aquí

Ahora mueva la columna "Categoría de página" al lado izquierdo y expanda la entrada "Tabla de página":

ingrese la descripción de la imagen aquí

Aquí puede ver los procesos que tienen un alto uso de tablas de páginas. En el sitio correcto (después de la línea azul), verá el uso de memoria de la tabla de páginas en MB para cada proceso.

magicandre1981
fuente
en windows8.1 no veo 'residentset' como una opción gráfica disponible. ¿Cómo puedo obtenerlo? una bandera xperf diferente?
akira
Respondo mi propio comentario: actualizar xperf.
akira
Esto no funciona para mí en Windows 7, la primera llamada a xperf daxperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
benshepherd
@benshepherd para mí funciona. Asegúrese de utilizar el último WPT del 8.1 SDK: dropbox.com/s/e5ol59a6n9g3ctb/Win7_xperf.png
magicandre1981
1
Finalmente he descubierto el problema, era Lenovo "RapidBoot Shield" y retirar los que resuelve mi problema: superuser.com/a/850346/79763
sparrowt
0

Las únicas cosas "extrañas" que puedo ver aquí son estas:

  • tienes un proceso llamado scan.exeque acapara el 98% de la CPU en este momento
  • tiene un proceso llamado fssm32.exeque tiene 9 millones de fallas de página. fssm32.exeparece un programa del escáner de virus f-secure.
  • También tiene un proceso llamado SAV32CLI.EXEque acapara otros 130mb + de memoria. parece que te sientes mejor protegido para ejecutar 2 antivirus: f-secure y sophos al mismo tiempo.

la captura de pantalla de rammap se ve bien para mí: tiene un grupo de ~ 400mb de archivos en caché, 85mb de ellos en uso activo, 300mb + en modo de espera (lo que significa que se liberan tan pronto como necesite más ram). mirando su cantidad de procesos sshd.exe y bash.exe, esto también parece legítimo.

La mejor manera de aprender el funcionamiento interno de cómo Windows administra la memoria es esta charla aquí: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 ... ya está utilizando algunas de las herramientas que desarrolló el orador .

akira
fuente
1
mis contactos de Microsoft (Microsoft Premier Field Engineers) también me dijeron que varios 100 MB de tabla de páginas no son normales para Windows.
magicandre1981