🧠 Componente: Memória RAM. Problemas de memória manifestam-se como lentidão progressiva, elevado uso de disco (paging) ou crashes súbitos. Em VMs, a memória dinâmica do hypervisor adiciona uma camada extra de diagnóstico. Este artigo cobre todos os passos — de uma leitura rápida com o Task Manager à análise do pagefile com PowerShell.
Quando suspeitar de problema de memória?
- Sistema fica progressivamente mais lento ao longo do tempo (sem reinício)
- Disco com atividade constante mesmo sem operações explícitas (paging para disco)
- Aplicações ficam lentas após horas de uso mas rápidas após reinício
- Task Manager mostra RAM “In Use” acima de 90% de forma persistente
- Erros de “Out of memory” em aplicações
1. Verificação Rápida com PowerShell
Executar no PowerShell como Administrador para uma leitura imediata:
Get-WmiObject Win32_OperatingSystem | Select-Object `
@{N='TotalRAM_GB'; E={[math]::Round($_.TotalVisibleMemorySize/1MB,2)}},
@{N='FreeRAM_GB'; E={[math]::Round($_.FreePhysicalMemory/1MB,2)}},
@{N='Used%'; E={[math]::Round((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)/$_.TotalVisibleMemorySize)*100,1)}}
2. Task Manager — Análise Visual de Memória
No separador Performance → Memory do Task Manager:
- In Use — memória efetivamente usada por processos e kernel
- Available — memória livre para uso imediato (standby + free)
- Committed — memória virtual reservada; se muito superior à RAM física, há paging intenso
- Cached — dados de disco em cache (comportamento normal e saudável)
No separador Processes: ordenar pela coluna Memory (Private Working Set) para ver os maiores consumidores de RAM.
3. Performance Monitor — Contadores de Memória
Abre com Win+R → perfmon.exe. Clica em + para adicionar os seguintes contadores:
| Contador | O que mede | Limiar de alerta |
|---|---|---|
\Memory\Available MBytes |
Memória disponível para novos processos | < 200 MB (em VMs com 4 GB) |
\Memory\Pages/sec |
Páginas lidas/escritas do disco por segundo (paging) | > 20 de forma contínua = falta de RAM |
\Memory\Page Faults/sec |
Hard page faults = acesso a páginas em disco | Valores elevados e sustentados |
\Memory\Pool Nonpaged Bytes |
Memória de kernel não paginável | Crescimento contínuo = leak de driver |
\Memory\Pool Paged Bytes |
Memória de kernel paginável | Crescimento anormal |
\Paging File(_Total)\% Usage |
Percentagem do pagefile em uso | > 50% indica RAM insuficiente |
\Process(*)\Working Set |
Memória física usada por cada processo | Identificar processos com crescimento contínuo |
4. Identificar Processos com Maior Consumo de RAM
# Top 15 processos por memória física (Working Set)
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 15 `
Name, Id,
@{N='WorkingSet_MB'; E={[math]::Round($_.WorkingSet64/1MB,1)}},
@{N='VirtualMem_MB'; E={[math]::Round($_.VM/1MB,1)}} |
Format-Table -AutoSize
Prestar atenção a processos cujo WorkingSet_MB cresce continuamente ao longo do tempo sem ser libertado — sinal de memory leak.
5. Análise do Ficheiro de Paginação (Pagefile)
# Configuração atual do pagefile
Get-WmiObject Win32_PageFileSetting | Select-Object Name, InitialSize, MaximumSize
# Uso atual e pico histórico
Get-WmiObject Win32_PageFileUsage | Select-Object `
Name,
@{N='UsedMB'; E={$_.CurrentUsage}},
@{N='PeakMB'; E={$_.PeakUsage}}
A configuração recomendada para ambientes de servidor é deixar o Windows gerir o pagefile automaticamente (System managed size), ou defini-lo com um mínimo de 1,5× a RAM e máximo de 3× a RAM.
6. Windows Memory Diagnostic — Teste de Integridade de RAM
Para descartar corrupção física de RAM:
- Win+R → mdsched.exe → Restart now and check for problems
- O sistema reinicia e executa testes de integridade à RAM física (demora 10–20 minutos)
- Após o reinício, os resultados aparecem no Event Viewer → Windows Logs → System, fonte MemoryDiagnostics-Results
# Ver resultados do Memory Diagnostic no PowerShell
Get-EventLog -LogName System -Source MemoryDiagnostics-Results -Newest 5
7. Checklist — Diagnóstico de Memória
- ✅ Available MBytes no PerfMon — abaixo de 200 MB?
- ✅ Pages/sec — acima de 20 de forma contínua?
- ✅ Committed no Task Manager — muito superior à RAM total?
- ✅ Top processos por WorkingSet — algum cresce continuamente?
- ✅ PeakUsage do pagefile — foi atingido o máximo configurado?
- ✅ Pool Nonpaged Bytes — crescimento contínuo sem reinício? (leak de driver)
