Windows Server lento? Descubra se o gargalo é CPU, memória, disco ou rede com Gerenciador de Tarefas, resmon, perfmon e coleta contínua com logman.
Para que serve
Com o Windows Server lento e os usuários reclamando, é preciso descobrir o gargalo antes de comprar mais hardware ou mudar configurações: CPU, memória, disco ou rede? Este artigo mostra as três ferramentas nativas do Windows Server para isso, do diagnóstico rápido à coleta contínua, e quais números indicam problema de verdade.
Pré-requisitos
- Acesso de administrador (RDP ou console iLO/IPMI).
- Se o Windows for uma VM, acesso também ao Proxmox. Parte da lentidão pode estar no host, e não dentro da VM.
Passo a passo
1. Primeira olhada: Gerenciador de Tarefas
Pressione Ctrl+Shift+Esc. Na aba Processos, clique nos cabeçalhos CPU, Memória e Disco para ordenar e achar o processo mais pesado. Na aba Usuários (em servidor RDS) você vê o consumo por pessoa conectada. Isso resolve a maioria dos casos em que um único processo está fora de controle.
2. Detalhe em tempo real: Monitor de Recursos
Execute resmon. Ele mostra, por processo, informações que o Gerenciador de Tarefas não mostra:
- Disco: quais arquivos estão sendo lidos e gravados, e o Tempo de resposta (ms) de cada um. Ótimo para descobrir que o antivírus está varrendo a base do ERP, por exemplo.
- Memória: a barra mostra memória em uso, modificada, em espera e livre. Pouca memória "em espera" e "livre" somadas indica falta real de RAM.
- Rede: as conexões TCP de cada processo e o volume trafegado.
- CPU → Identificadores associados: descubra qual processo está segurando um arquivo que ninguém consegue apagar.
3. Medição com números: Monitor de Desempenho
Execute perfmon → Ferramentas de Monitoramento → Monitor de Desempenho. Clique no + e adicione os contadores da tabela. Use a referência como ponto de partida e observe sempre a tendência ao longo de vários minutos, não picos isolados.
| Contador | O que indica | Sinal de alerta |
|---|---|---|
| Processor(_Total)\% Processor Time | Uso total de CPU | Acima de 85% de forma contínua |
| System\Processor Queue Length | Threads esperando CPU | Mais de 2 por núcleo de forma contínua |
| Memory\Available MBytes | RAM realmente disponível | Abaixo de 10% da RAM total, ou de 500 MB |
| Memory\% Committed Bytes In Use | Uso da memória comprometida (RAM + arquivo de paginação) | Acima de 90% |
| Memory\Pages Input/sec | Leituras do arquivo de paginação | Valores altos e constantes junto com pouca RAM livre |
| LogicalDisk(*)\Avg. Disk sec/Read e Avg. Disk sec/Write | Latência do disco (em segundos) | Acima de 0,010 (10 ms) em SSD/NVMe de forma contínua |
| LogicalDisk(*)\Avg. Disk Queue Length | Fila de operações no disco | Alta e acompanhada de latência alta |
| LogicalDisk(*)\% Free Space | Espaço livre | Abaixo de 15% |
| Network Interface(*)\Bytes Total/sec | Tráfego de rede | Perto de 125.000.000 (o limite de um uplink de 1 Gbps) |
4. Coleta contínua (linha de base)
Problemas que acontecem "às vezes" só aparecem com histórico. Crie um coletor que grava os contadores a cada 15 segundos em arquivo circular de até 500 MB:
logman create counter LinhaDeBase -si 00:00:15 -f bincirc -max 500 -o "C:\PerfLogs\LinhaDeBase" -c "\Processor(_Total)\% Processor Time" "\System\Processor Queue Length" "\Memory\Available MBytes" "\Memory\% Committed Bytes In Use" "\LogicalDisk(*)\Avg. Disk sec/Read" "\LogicalDisk(*)\Avg. Disk sec/Write" "\LogicalDisk(*)\% Free Space" "\Network Interface(*)\Bytes Total/sec"
logman start LinhaDeBase
Para analisar, abra o arquivo .blg no perfmon (ícone de "Exibir dados de log"). O coletor não volta sozinho depois de uma reinicialização. Inicie-o de novo ou crie uma tarefa agendada "Ao iniciar" com logman start LinhaDeBase.
5. Consultas rápidas pelo PowerShell
Get-Counter '\Processor(_Total)\% Processor Time','\Memory\Available MBytes' -SampleInterval 5 -MaxSamples 6
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU, @{n='RAM(MB)';e={[int]($_.WorkingSet64/1MB)}}
Get-Volume | Select-Object DriveLetter, FileSystemLabel, @{n='Livre(GB)';e={[int]($_.SizeRemaining/1GB)}}, @{n='Total(GB)';e={[int]($_.Size/1GB)}}
Como saber se funcionou
logman query LinhaDeBasemostra o status Em execução (Running).- A pasta
C:\PerfLogs\LinhaDeBaserecebe um arquivo.blgque cresce com o tempo. - Você consegue apontar, com números, qual recurso está no limite nos horários de reclamação.
Windows Server lento: interpretando os números e agindo
- CPU alta por um único processo: é um problema do aplicativo, como uma consulta pesada, um loop ou o antivírus. Mais núcleos não resolvem.
- CPU alta distribuída em uma VM: confira no Proxmox se o host também está saturado. Se a VM tiver poucas vCPUs, aumente; se o host estiver no limite, redistribua as VMs.
- Pouca memória disponível: veja se o SQL Server está sem limite de memória (veja o artigo «Boas práticas de SQL Server em servidor dedicado: disco, memória, tempdb e backup»). Em servidor RDS, conte quantos usuários e navegadores estão abertos.
- Latência de disco alta: identifique o arquivo no
resmon. Exclua da varredura em tempo real do antivírus as pastas de bancos de dados e de backup. Se o Windows for uma VM, confira se ela usa VirtIO SCSI e não IDE/SATA. - Disco cheio: as causas mais comuns são logs, a pasta
C:\Windows\SoftwareDistribution, perfis de usuários RDS e backups locais esquecidos.
Problemas comuns
- "O contador especificado não foi encontrado": os comandos deste artigo usam os nomes em inglês dos contadores. Se o Windows foi instalado em português, o
Get-Countere ologmanpodem exigir os nomes traduzidos (por exemplo\Processador(_Total)\% Tempo de Processador). Liste os nomes exatos comtypeperf -qouGet-Counter -ListSet *. Outra opção é criar o coletor pela interface:perfmon→ Conjuntos de Coletores de Dados → Definido pelo Usuário → Novo. - Contadores de disco zerados: rode
diskperf -ye reinicie. - Coletor parou: o servidor foi reiniciado. Crie a tarefa agendada descrita no passo 4.
Para receber alertas sem depender de alguém olhar o perfmon, veja também o artigo «Como instalar Zabbix Agent 2 no Debian, Ubuntu e Proxmox». Para a saúde física dos discos, veja «Como monitorar a saúde do disco e a temperatura do servidor (smartd, NVMe e IPMI)».
Perguntas frequentes
Como descobrir qual processo está deixando o Windows Server lento?
Abra o Gerenciador de Tarefas (Ctrl+Shift+Esc) e ordene por CPU, Memória e Disco. Para ver quais arquivos cada processo está usando, abra o resmon.
Qual latência de disco é aceitável no Windows Server?
Em SSD e NVMe, valores de Avg. Disk sec/Read ou Write acima de 0,010 (10 ms) de forma contínua indicam problema. Picos isolados não são motivo de alarme.
Como monitorar o servidor de forma contínua?
Crie um coletor com logman que grava os contadores em arquivo circular e analise o .blg no perfmon. Para alertas, use uma ferramenta como o Zabbix.
Por que o SQL Server ocupa quase toda a memória?
Por padrão ele usa toda a RAM disponível como cache. Defina o max server memory para deixar memória para o Windows e outros programas.
Leitura complementar
Precisa de ajuda? Se você suspeita de falha de hardware (disco com erros, memória com alertas no iLO/IPMI), abra um ticket ou fale com o suporte pelo WhatsApp.
