tl; dr: Faça o download de todos os 5 arquivos de FindZombieHandles , execute-os e veja quais processo está criando todos esses zumbis.
Você estava certo ao perceber esse problema. 1
Existem algumas causas comuns:
- Um vazamento de identificador, especialmente de objetos GDI
- Um vazamento de identificador, resultando em processos zumbis
- Memória bloqueada do driver, que pode ser causada por um driver com bugs ou até mesmo operação normal (por exemplo, o balão VMware intencionalmente "consome" sua RAM para tentar equilibrá-la entre as VMs)
Como obter mais informações
Agora, a primeira coisa que podemos fazer é usar a excelente ferramenta RAMMap , que identificará as categorias amplas em que o uso de memória se enquadra. Estes não necessariamente lhe dizem o que era, mas dão uma sugestão de onde procurar em seguida.
Em seu caso específico, refiro-me a a captura de tela que você forneceu . Você deseja examinar a coluna Active
- a coluna Standby
inclui caches que se encontram na memória "disponível". Observe que Page Table
é muito alto - eu esperaria que ele estivesse no patamar de menos de 512 MB, não muito acima de 2 GB!
Limitando
A partir daqui podemos adivinhar: é provavelmente devido a processos de zombies. Um processo de zumbi pode ocorrer no Windows quando um abre outro processo , que contém um identificador no processo iniciado. Quando o processo lançado é encerrado, espera-se que o processo de lançamento libere essas alças. Quando isso não acontece, eles permanecem enquanto o processo de lançamento existe.
Na verdade, podemos obter mais confirmações na guia Processos do RAMMap. Observe no seu caso, classificando pelo nome do processo, os milhares de tasklist.exe
e centenas de powershell.exe
ocorrências. Na verdade, qualquer coisa lá com o uso de memória privada de 0 K
é uma bandeira vermelha de um processo que terminou, mas ainda está zumbindo por aí.
Agora, você precisa descobrir qual processo está criando todos esses zumbis. Existem algumas maneiras de fazer isso. Você pode usar o Gerenciador de Tarefas na guia Detalhes e adicionar a coluna Handles. Qualquer processo que contenha um grande número de zumbis também terá um número excessivo de alças abertas. Você também pode usar o Process Explorer para ver o que lida com um processo específico aberto. / p>
No entanto, de longe, a maneira mais fácil é usar FindZombieHandles 2 (você precisa baixar todos os 5 arquivos no mesmo diretório). Se você executar essa ferramenta (como administrador), ele deverá informar qual processo está criando e mantendo todos esses zumbis. A partir daí, você pode eliminar o processo, desinstalar o aplicativo ou denunciá-lo ao desenvolvedor.
1 Como expliquei em outro lugar, a guia Processos do Gerenciador de Tarefas exibe o uso de memória excluindo caches de disco para que a explicação comum (Linux) de "RAM livre seja um desperdício" não se aplica. No que diz respeito ao Gerenciador de Tarefas, o cache de disco faz parte da memória disponível. Nenhuma menção é feita de memória "livre".
2 Um enorme obrigado a Bruce Dawson para esta ferramenta.