Ver um steal zerado no mpstat (0.00) é uma excelente notícia inicial para qualquer administrador de sistemas. O “steal time” mostra a porcentagem de tempo que a sua VPS tentou usar o processador, mas precisou esperar porque o hypervisor estava ocupado com outras máquinas virtuais.
Quando você roda o comando no terminal e se depara com um steal zerado no mpstat, isso indica que, naquele exato momento, o hypervisor não está limitando o desempenho da sua CPU. Toda vez que sua VPS pede processamento, ela recebe instantaneamente.
No entanto, comemorar apenas olhando esse número isolado é um erro comum. Para avaliar o real impacto do hypervisor na sua VPS, você precisa ir além da CPU.
Veja os pontos principais onde os gargalos podem estar escondidos:
- A armadilha da VPS sem carga: Se a sua máquina virtual estiver ociosa (sem receber tráfego), o resultado será um steal zerado no mpstat de qualquer forma. Para avaliar o hypervisor corretamente, monitore essa métrica durante os horários de pico do seu site ou aplique um teste de stress na CPU.
- Gargalos de Disco (I/O): O hypervisor pode entregar CPU perfeitamente, mas o disco físico (SSD/NVMe) pode estar sobrecarregado. Fique de olho na coluna
%iowait. Se ela estiver alta, a CPU está ociosa esperando o disco responder. - Rede estrangulada: A placa de rede é compartilhada no servidor físico. Se outros clientes estiverem consumindo toda a banda, sua aplicação ficará lenta, independentemente do processamento livre.
- Roubo de Memória (Ballooning): Alguns provedores pegam a memória RAM que sua VPS não está usando no momento e emprestam para outras instâncias, o que pode forçar o uso de Swap quando sua aplicação precisar da RAM de volta.
Em resumo, ter um steal zerado no mpstat é um ótimo ponto de partida, mas a verdadeira qualidade da sua hospedagem só se comprova estressando a máquina e monitorando também a resposta do disco e da rede.
Mão na massa: Como testar os limites da sua VPS na prática
1. Como testar a CPU e monitorar o Steal Time
Para descobrir se o seu steal zerado no mpstat se mantém quando a máquina é realmente exigida, vamos usar uma ferramenta chamada sysbench para estressar a CPU, enquanto monitoramos o mpstat em outra janela.
Passo 1: Instale as ferramentas necessárias (exemplo para Ubuntu/Debian):
Bash
sudo apt update sudo apt install sysbench sysstat -y
Passo 2: Abra dois terminais (duas janelas do SSH). No primeiro terminal, deixe o mpstat rodando para atualizar a cada 1 segundo:
Bash
mpstat 1
Passo 3: No segundo terminal, inicie o teste de stress na CPU usando todos os núcleos disponíveis:
Bash
sysbench cpu --threads=$(nproc) run
O que observar: Volte rapidamente para o primeiro terminal. Se o %steal sair de zero e começar a subir (ex: 5%, 10%, 20%), significa que o hypervisor do seu provedor está limitando o seu processamento sob carga.
2. Como testar o I/O de Disco e monitorar o iowait
Como vimos, o hypervisor pode entregar CPU, mas o disco pode ser o gargalo. Vamos fazer um teste rápido de gravação no disco ignorando o cache do sistema (oflag=direct).
Passo 1: No primeiro terminal, inicie o monitoramento de disco com o comando iostat (atualizando a cada 1 segundo):
iostat -xz 1
(Nota: se o iostat não estiver disponível, você pode continuar usando o mpstat 1 e focar apenas na coluna %iowait).
Passo 2: No segundo terminal, rode um teste de escrita pesada criando um arquivo de 1GB:
dd if=/dev/zero of=teste_disco bs=1G count=1 oflag=direct
Passo 3: Limpe o arquivo de teste logo em seguida para não ocupar espaço no servidor:
rm teste_disco
O que observar: Enquanto o comando dd estiver rodando, olhe para o seu monitoramento. Se a coluna %iowait disparar para números muito altos, significa que sua CPU está ociosa apenas esperando o disco (que está lento) conseguir gravar os dados.
FAQ
O %steal (ou steal time) é a porcentagem de tempo que a sua máquina virtual tentou utilizar o processador, mas precisou aguardar porque o hypervisor físico estava ocupado processando tarefas de outras máquinas virtuais (vizinhos barulhentos).
Não necessariamente. Um steal zerado apenas indica que a CPU não está sofrendo contenção no momento da medição. O servidor ainda pode apresentar gargalos de leitura de disco (I/O), lentidão na rede ou até mesmo limitação de memória imposta pelo hypervisor.
Para descobrir se o hypervisor limita sua máquina, é necessário rodar ferramentas de stress de CPU, como o sysbench ou o stress. Isso forçará a máquina virtual a pedir processamento máximo; se o hypervisor não der conta, o steal time subirá.
Veja Mais:
Monitoramento Contínuo de Servidores Linux: Guia Definitivo
Zabbix, Prometheus ou Netdata para monitoramento contínuo
Monitoramento de Uptime: Por que o monitoramento externo é essencial (e como configurar)

