CPU steal I/O lento e latência variável
1️⃣ CPU Steal
- O que é:
%stealnotopouvmstatindica o tempo que a CPU virtual esperou para ser atendida pelo hypervisor em um ambiente virtualizado (VPS, cloud). - Sintoma típico: alta utilização de CPU, mas o próprio sistema não consegue processar rápido.
- Causa provável:
- Overselling no host (mais VMs do que CPU física disponível).
- Má distribuição de recursos pelo hypervisor.
- Máquinas vizinhas consumindo muito CPU.
- Como confirmar:
top→ colunastouvmstat 1→st.- Compare
%stealcom%id(idle). Steal acima de 5–10% já é perceptível em desempenho.
Problemas como CPU steal elevado, latência de disco ou gargalos de I/O podem indicar limitações na infraestrutura ou na arquitetura do servidor. Em muitos casos, esses sintomas aparecem quando o ambiente não foi dimensionado corretamente para o volume de tráfego da aplicação. Para entender como estruturar ambientes robustos para produção, veja também o guia sobre arquitetura de servidor web em produção.
2️⃣ I/O lento
- O que é: operações de disco ou rede que demoram mais do que o esperado.
- Sintoma típico: leitura/gravação de banco de dados, logs ou arquivos lentos, páginas carregando devagar, backup demorando.
- Causa provável:
- Discos compartilhados sobrecarregados (em VPS) ou SSD próximo do TBW máximo.
- RAID mal configurado ou com rebuild em andamento.
- Alta concorrência de I/O (muitos processos lendo/escrevendo simultaneamente).
- Como confirmar:
iostat -x 1→ vejaawait,svctm,%util.iotop→ processos que mais consomem I/O.dstat -dounmonpara gráficos históricos.
3️⃣ Latência variável (jitter)
- O que é: inconsistência no tempo de resposta da CPU ou disco.
- Sintoma típico: aplicações funcionam bem às vezes e travam em outras, spikes de latência, load médio flutuando.
- Causa provável:
- Overselling de CPU ou I/O (como
%stealalto). - Contenção de recursos em hypervisor.
- Processos batch pesados em horários específicos.
- Overselling de CPU ou I/O (como
- Como confirmar:
sar -qesar -u→ flutuação de load e CPU.ioping→ teste de latência de disco.- Logs da aplicação → spikes de tempo de resposta.
⚡ Resumo de diagnóstico
| Sintoma | Provável causa | Verificação rápida |
|---|---|---|
| CPU steal alto | Overselling ou hypervisor lento | top, vmstat, %st |
| I/O lento | Disco sobrecarregado ou RAID | iostat -x, iotop, dstat |
| Latência variável | Contenção de recursos | sar, ioping, load flutuante |
Interpretação combinada:
Quando você vê CPU steal + I/O lento + latência variável, geralmente o VPS/host físico está sobrecarregado. Mesmo que sua CPU apareça ociosa (%idle), o hypervisor está “roubando” tempo da VM para outras máquinas. Discos compartilhados lentos agravam ainda mais a situação.
✅ Checklist de Investigação de Desempenho
1️⃣ CPU: Verificando Steal e Contenção
Objetivo: Descobrir se a VM está sofrendo por overselling ou concorrência de CPU.
Comandos principais:
toptop -bn1 | head -20- Verificar coluna
st→ %steal - Threshold:
< 2%→ normal2–5%→ atenção> 5–10%→ provável impacto
- Verificar coluna
vmstat 1 5vmstat 1 5- Colunas:
r(run queue),st(steal) - Run queue > número de cores → CPU saturada
- Colunas:
mpstat -P ALL 1 5mpstat -P ALL 1 5- Checar se algum core tem
stalto - Alta variabilidade entre cores → jitter de CPU
- Checar se algum core tem
O que procurar:
%stealconstante alta → hypervisor ocupado- Load médio > cores disponíveis + spikes → CPU limitada
Identificar corretamente gargalos de CPU, disco ou rede é fundamental para entender o comportamento do servidor em produção. No entanto, além do diagnóstico, também é necessário avaliar se a infraestrutura foi projetada corretamente para suportar a carga da aplicação. Esse tipo de planejamento faz parte de uma arquitetura eficiente de servidores web em produção.
2️⃣ Disco / I/O: Identificando gargalos
Objetivo: Descobrir se lentidão de disco está impactando a VM.
Comandos principais:
iostat -x 1 5iostat -x 1 5- Colunas:
%util→ quanto o disco está ocupadoawait→ tempo médio de respostasvctm→ tempo de serviço
- Thresholds:
%util > 70%→ sobrecargaawait > 20msem SSD → problemaawait > 50–100msem HDD → problema grave
- Colunas:
iotop -oiotop -o- Mostra processos que estão consumindo mais I/O
- Procure spikes de leitura/escrita por processos inesperados
- Teste de latência de disco:
iopingioping -c 10 .- Latência <1ms SSD local → normal
- Latência >5–10ms → problema em VPS ou storage compartilhado
3️⃣ Memória / Swap (contribui para latência)
Objetivo: Descobrir se falta de RAM está causando I/O indireto (swap).
Comandos:
free -h- Swap > 10–20% usado → impacto perceptível
vmstat 1 5- Coluna
si/so→ swap in/out - Swap constante → aplicativo lento mesmo com CPU ociosa
- Coluna
4️⃣ Latência e jitter geral
Objetivo: Medir consistência de resposta de CPU e disco.
sar -q 1 10→ fila de processos- Coluna
runq-sz> cores → CPU saturada
- Coluna
sar -u 1 10→ CPU- Variabilidade alta → jitter
ioping→ teste de latência de disco
5️⃣ Rede (opcional, se houver spikes)
iftopounload→ picos de rede podem atrasar aplicação- Latência de rede alta → HTTP lento, não é problema de CPU/IO local
6️⃣ Conclusão rápida
| Sintoma | Indicador real de problema | Ação recomendada |
|---|---|---|
| CPU steal alto | %steal > 5% | Reportar para host/cloud ou migrar VPS |
| I/O lento | %util > 70%, await > 20ms (SSD) | Identificar processo ou storage saturado |
| Latência variável | Spikes de load ou ioping alto | Monitorar horários de pico, rever cores |
| Swap frequente | si/so > 0 constante | Mais RAM ou tuning de memória |
Diagnosticar problemas como CPU steal, latência de disco ou I/O lento é apenas uma parte da gestão de infraestrutura. Para evitar que esses gargalos apareçam em ambientes de produção, é essencial projetar corretamente a arquitetura do servidor e a distribuição de recursos. Para aprofundar esse tema, veja também o guia completo sobre arquitetura de servidor web em produção.
FAQ
CPU steal é o tempo que a CPU virtual passa aguardando pelo hypervisor em ambientes virtualizados. Altos valores indicam overselling ou sobrecarga de outros VPS no mesmo host.
Use iostat -x, iotop e ioping para medir tempo de resposta e utilização do disco. Alta latência ou %util acima de 70% indica gargalo
Geralmente é causada por contenção de recursos: CPU sobrecarregada, disco lento, swap intenso ou processos batch concorrentes.
Comandos como top, vmstat e mpstat mostram a porcentagem de CPU “steal” em tempo real.
Possíveis soluções: migrar para VPS com menos overselling, otimizar processos que consomem I/O, aumentar RAM, ajustar prioridades com nice e ionice
Veja Mais:
Arquitetura de Servidor Web em Produção
Como diagnosticar problemas de disco em servidores Linux
Reduzindo Ruído em Monitoramento de Servidores
WAF na Prática: Configurando ModSecurity no LiteSpeed e Nginx sem Quebrar sua Aplicação

