💾 Componente: Disco. Em ambientes virtualizados, o disco é frequentemente o maior bottleneck. Storage partilhado (SAN, NAS, iSCSI) ou discos virtuais sobre-provisionados introduzem latências significativas. Este artigo cobre o diagnóstico completo — do Task Manager ao CHKDSK, passando pelos contadores PerfMon mais críticos.
Quando suspeitar de problema de disco?
- Operações de leitura/escrita de ficheiros demoram muito mais que o habitual
- Sistema lento mas CPU e RAM parecem normais — verificar iowait
- Task Manager mostra “Disk” com latência acima de 20–50 ms
- Cópias de ficheiros em rede ou local anormalmente lentas
- Aplicações de base de dados com timeouts frequentes
1. Task Manager — Leitura Inicial de Disco
No separador Performance → Disk:
- Observar velocidade de leitura e escrita em MB/s
- Verificar o tempo de resposta (ms) — latência média das operações
- Latência acima de 20 ms para disco de sistema ou 50 ms para discos secundários é problemática
No separador Processes: adicionar a coluna Disk I/O (clique com o botão direito no cabeçalho das colunas) para identificar os processos com maior atividade de disco.
2. Performance Monitor — Contadores Críticos de Disco
Abre com Win+R → perfmon.exe. Os contadores de disco a adicionar:
| Contador | O que mede | Limiar de alerta |
|---|---|---|
\PhysicalDisk(_Total)\Avg. Disk Queue Length |
Fila média de pedidos pendentes | > 2 = bottleneck confirmado |
\PhysicalDisk(_Total)\Avg. Disk sec/Read |
Latência média de leitura | > 20 ms = alerta; > 50 ms = crítico |
\PhysicalDisk(_Total)\Avg. Disk sec/Write |
Latência média de escrita | > 20 ms = alerta; > 50 ms = crítico |
\PhysicalDisk(_Total)\% Disk Time |
% do tempo em que o disco está ocupado | > 80% sustentado |
\PhysicalDisk(_Total)\Disk Reads/sec |
Operações de leitura por segundo (IOPS read) | Comparar com especificação do disco |
\PhysicalDisk(_Total)\Disk Writes/sec |
Operações de escrita por segundo (IOPS write) | Comparar com especificação do disco |
\PhysicalDisk(_Total)\Disk Read Bytes/sec |
Throughput de leitura | Comparar com largura de banda máxima |
\LogicalDisk(C:)\% Free Space |
Espaço livre no volume | < 10% degrada performance NTFS |
3. PowerShell — Latência em Tempo Real
# Latência e fila de I/O em tempo real (10 amostras, 2s de intervalo)
Get-Counter `
'\PhysicalDisk(_Total)\Avg. Disk sec/Read',
'\PhysicalDisk(_Total)\Avg. Disk sec/Write',
'\PhysicalDisk(_Total)\Avg. Disk Queue Length' `
-SampleInterval 2 -MaxSamples 10 |
ForEach-Object {
$_.CounterSamples | Select-Object Path, @{N='Value';E={[math]::Round($_.CookedValue,4)}}
}
# Espaço em todos os volumes locais
Get-WmiObject Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} |
Select-Object DeviceID,
@{N='Total_GB'; E={[math]::Round($_.Size/1GB,2)}},
@{N='Free_GB'; E={[math]::Round($_.FreeSpace/1GB,2)}},
@{N='Free%'; E={[math]::Round($_.FreeSpace/$_.Size*100,1)}} |
Format-Table -AutoSize
4. CHKDSK — Verificação de Integridade do Sistema de Ficheiros
Abrir CMD como Administrador:
:: Verificar erros sem corrigir (modo leitura — não requer reinício)
chkdsk C: /scan
:: Verificação completa com correção (requer reinício para partição de sistema)
chkdsk C: /f /r
# Ver resultados após reinício no PowerShell
Get-EventLog -LogName Application -Source Chkdsk -Newest 5 |
Select-Object TimeGenerated, Message
/r verifica setores defeituosos (bad sectors) e pode demorar várias horas em discos grandes. Usar apenas quando há suspeita de danos físicos ou erros recorrentes de disco nos logs do sistema.
5. SMART — Estado de Saúde do Disco
# Verificar estado SMART via WMI
Get-WmiObject -Namespace root\wmi -Class MSStorageDriver_FailurePredictStatus |
Select-Object InstanceName, PredictFailure, Reason
Se PredictFailure = True, o disco reporta iminência de falha — planear substituição imediata e fazer backup urgente.
Para análise SMART detalhada, usar o CrystalDiskInfo (gratuito) que apresenta todos os atributos SMART em formato legível.
6. Identificar Processos com Maior I/O — Process Monitor
- Descarregar Process Monitor (procmon.exe) das Sysinternals
- Executar como Administrador — o rastreio inicia automaticamente
- Filtrar: Filter → Filter → Operation → is → ReadFile → Add (repetir para WriteFile)
- Ordenar pela coluna Duration para identificar as operações mais lentas
- Menu Tools → File Summary — mostra os ficheiros com maior atividade de I/O
7. WinSAT — Benchmark de Disco
:: Executar benchmark de disco (demora ~2 minutos)
winsat disk -drive c
O resultado inclui velocidades de leitura/escrita sequencial e aleatória. Comparar com as especificações do disco virtual para identificar degradação de performance ao longo do tempo.
8. Checklist — Diagnóstico de Disco
- ✅ Task Manager → Disk: latência acima de 20 ms?
- ✅ PerfMon: Avg. Disk Queue Length acima de 2?
- ✅ PerfMon: Avg. Disk sec/Read e /Write — valores em ms?
- ✅ Espaço livre em todos os volumes — abaixo de 10%?
- ✅
chkdsk /scan— erros de sistema de ficheiros? - ✅ SMART: PredictFailure = True em algum disco?
- ✅ Process Monitor: qual processo gera mais I/O?
