Steal Zerado no Mpstat: Como Avaliar o Impacto do Hypervisor

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 que significa %steal no Linux?

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).

Um steal zerado indica que o servidor é excelente?

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.

Como testar o limite do hypervisor na VPS?

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)

Icinga vs Checkmk: Guia Prático de Configuração e Alertas