Como detectar overselling em VPS

Overselling em VPS é aquele clássico “o provedor prometeu mais do que o host físico aguenta” — e quem paga a conta é você, com lentidão aleatória, picos de latência e performance inconsistente.

Vamos ao que interessa: como detectar isso na prática, sem achismo.


1️⃣ Sintomas clássicos de overselling

Antes de medir, observe o comportamento:

  • CPU “livre”, mas tudo demora
  • Load average alto sem uso real de CPU
  • MySQL lento só em horários específicos
  • I/O travando mesmo com disco “rápido”
  • Picos de latência sem motivo aparente
  • Performance boa de madrugada, ruim de dia

Se isso soa familiar… alerta ligado 🚨


2️⃣ CPU: roubando seu tempo sem avisar

🔍 Verifique CPU steal time

Esse é o principal indicador de overselling.

top

Procure por:

%Cpu(s): ... st

Ou mais preciso:

mpstat -P ALL 1

📌 Interpretação:

  • st > 2% constante → suspeito
  • st > 5–10% frequente → overselling claro
  • st alto + CPU ociosa → host saturado

👉 Steal time = tempo que a sua VPS queria CPU, mas o hypervisor não entregou.


3️⃣ Load alto com CPU baixa (clássico)

uptime

Exemplo ruim:

load average: 8.2, 7.9, 7.5

Mas CPU:

top

Mostra:

90% idle

📌 Isso não é aplicação mal otimizada.
É CPU disputada no host físico.


4️⃣ Disco: onde o overselling mais dói

Teste simples de I/O

iostat -xz 1

Observe:

  • await acima de 20–30ms
  • svctm instável
  • %util sempre perto de 100%

Ou teste direto:

dd if=/dev/zero of=test.img bs=1G count=1 oflag=direct

Resultados típicos:

  • Prometeram NVMe → entrega < 100 MB/s 😬
  • Performance varia muito entre execuções

📌 Overselling de I/O é o mais comum e o mais destrutivo.


5️⃣ Rede inconsistente (menos comum, mas existe)

Teste latência contínua:

ping -i 0.2 8.8.8.8

Se:

  • Latência varia demais
  • Picos sem tráfego
  • Packet loss ocasional

👉 Pode ser overselling de uplink ou congestionamento interno.


6️⃣ Compare com VPS “limpa” (teste A/B)

A melhor prova:

  • Suba outra VPS (mesmo plano, outro provedor)
  • Rode os mesmos testes
  • Compare:
    • CPU steal
    • I/O
    • Load vs CPU

Diferença gritante = prova concreta.


7️⃣ Overselling x Limitação contratual (não confunda)

⚠️ Nem tudo é overselling:

SituaçãoÉ overselling?
CPU limitada por cgroup
Burst CPU acabou
Disco lento, mas estável
Performance variável e imprevisível

Overselling = inconsistência, não só limite.


8️⃣ O que NÃO resolve

❌ Tunar kernel
❌ Ajustar sysctl
❌ Otimizar MySQL infinitamente
❌ Trocar PHP 8.1 → 8.3 esperando milagre

👉 Se o host está saturado, não existe tuning que salve.


9️⃣ Como confirmar de vez

Checklist final:

  • CPU steal > 5%
  • Load alto com CPU idle
  • I/O inconsistente
  • Performance varia por horário
  • Mesmo stack roda melhor em outro VPS

Se marcou 3 ou mais → overselling confirmado


10️⃣ O que fazer quando detecta overselling

  1. Abrir ticket pedindo migração de host
  2. Pedir métricas do nó físico
  3. Migrar para plano:
    • CPU dedicada
    • NVMe garantido
    • Limite de tenants por host
  4. Ou… trocar de provedor