Como Diagnosticar Vazamentos de Memória no Kernel com PoolMon e RAMMap
Seu computador começa rápido depois de ligar, mas, com as horas, fica cada vez mais lento até travar, e o Gerenciador de Tarefas mostra memória quase cheia sem nenhum programa culpado? Esse é o sintoma clássico de um vazamento de memória no kernel, geralmente causado por um driver com defeito. Este guia mostra como usar as ferramentas gratuitas da Microsoft, RAMMap e PoolMon, para encontrar o responsável.
Memória de usuário e memória do kernel
Programas comuns usam memória no "modo usuário", que aparece por processo no Gerenciador de Tarefas. Drivers e o próprio Windows usam memória do kernel, dividida principalmente em:
- Pool paginado: pode ser movido para o disco quando necessário.
- Pool não paginado: precisa ficar sempre na RAM física.
Quando um driver pede memória e nunca devolve, o pool cresce sem parar. Como isso não pertence a nenhum programa visível, parece que a memória "sumiu".
Passo 1: confirme o sintoma
- Abra o Gerenciador de Tarefas (Ctrl + Shift + Esc) > Desempenho > Memória.
- Observe os valores Pool paginado e Pool não paginado.
- Anote os valores logo após ligar o PC e depois de algumas horas de uso.
Valores de algumas centenas de megabytes são normais. Se o pool não paginado passa de 1 a 2 GB e continua subindo, há um vazamento provável.
Passo 2: RAMMap para ver para onde vai a memória
O RAMMap, da coleção Sysinternals da Microsoft, mostra como toda a RAM está sendo usada.
- Baixe o RAMMap no site oficial da Microsoft (Sysinternals) e execute como administrador.
- Na aba Use Counts, veja as linhas Paged Pool e Nonpaged Pool.
- Verifique também Driver Locked e Metafile, que costumam crescer com problemas de drivers ou de cache do sistema de arquivos.
O RAMMap confirma onde está o consumo, mas não diz qual driver é o culpado. Para isso, usamos o PoolMon.
Passo 3: PoolMon para achar a "tag"
Cada alocação de memória do kernel é marcada com uma tag de quatro letras que identifica quem a fez. O PoolMon mostra essas tags e quanto cada uma consome.
- O PoolMon vem no Windows Driver Kit (WDK), disponível gratuitamente no site da Microsoft.
- Abra o Prompt de Comando como administrador e execute
poolmon. - Pressione B para ordenar por bytes usados e P para alternar entre pool paginado e não paginado.
- Observe a tag no topo e se a coluna de diferença entre alocações e liberações cresce continuamente.
Passo 4: descubra qual driver usa a tag
Com a tag em mãos, procure quais arquivos de driver a contêm. No Prompt de Comando, dentro da pasta de drivers:
cd C:\Windows\System32\driversfindstr /m /l "Tag1" *.sys
Troque "Tag1" pela tag encontrada (diferencia maiúsculas). O resultado lista os arquivos .sys suspeitos. Pesquise o nome do arquivo para descobrir a qual dispositivo ou programa ele pertence.
Culpados mais comuns
- Drivers de rede (Wi-Fi e Ethernet), especialmente versões genéricas ou antigas.
- Antivírus e firewalls de terceiros, que instalam drivers de filtro.
- Softwares de RGB, monitoramento e periféricos gamer.
- VPNs e programas de virtualização.
Como corrigir
- Atualize o driver identificado pelo site do fabricante do dispositivo ou do notebook.
- Se o problema começou após uma atualização, volte para a versão anterior do driver no Gerenciador de Dispositivos.
- Desinstale o programa responsável, se não for essencial.
- Mantenha o Windows atualizado. Veja por que manter o Windows atualizado.
E os arquivos de dump?
Se o vazamento leva a uma tela azul, o Windows pode gravar um arquivo de despejo de memória (dump) em C:\Windows\Minidump ou C:\Windows\MEMORY.DMP. Ferramentas como o WinDbg analisam esse arquivo e frequentemente apontam o driver envolvido. Veja diagnóstico de telas azuis.
Para vazamentos em programas comuns, e não no kernel, veja vazamentos de memória RAM e travamentos.
Otimização de RAM no PruPru
O PruPru conta com rotinas de diagnóstico que identificam processos com consumo anômalo de memória física sem precisar reiniciar.
Baixar PruPru.exe Grátis →Perguntas frequentes
Qual valor de pool não paginado é normal?
Normalmente fica entre algumas dezenas e algumas centenas de megabytes. Se passa de 1 a 2 GB e não para de crescer com o tempo, é provável que algum driver esteja vazando memória.
Onde baixar o PoolMon e o RAMMap?
O RAMMap faz parte das ferramentas Sysinternals, no site da Microsoft. O PoolMon vem no Windows Driver Kit (WDK), também gratuito no site da Microsoft.
Reiniciar resolve vazamento de memória?
Temporariamente, sim, porque a memória é liberada. Mas o problema volta enquanto o driver defeituoso não for atualizado, revertido ou removido.