Como ler uma oferta barata de VPS
Analise vCPU, overselling, banda "ilimitada", NVMe, renovação e IPv4. Faça um teste de aceitação de 30 minutos antes de perder o prazo de reembolso.
O que uma oferta barata de VPS omite
Leia uma oferta de VPS barata de trás para a frente, porque o preço é o número menos útil da página. O que determina se o servidor é adequado é a parte que o anúncio não apresenta: a relação de overselling por trás da contagem de vCPU, a cláusula de utilização razoável por trás da palavra "ilimitado", o preço de renovação depois do primeiro período e se os backups e o endereço IPv4 são cobrados à parte. Este guia analisa o anúncio linha a linha e, depois, apresenta um teste de aceitação para executar no servidor enquanto ainda pode pedir o reembolso.
Isto não significa que um preço baixo seja uma armadilha. Hardware mais antigo, maior densidade de alojamento, suporte em regime de self-service e menor redundância da plataforma são condições que tornam possível um preço baixo. O objetivo é saber que compromisso aceitou antes de os seus utilizadores o descobrirem por si. Tudo o que se segue é executado no Ubuntu 24.04 com os pacotes disponíveis em agosto de 2026.
Uma vCPU não é um core
Uma vCPU é um slot de agendamento, não uma peça de silício. No KVM (kernel-based virtual machine), cada vCPU é uma thread no host, e o agendador do host coloca essa thread num core físico quando chega a sua vez. Um host pode vender quatro vCPUs associadas a um único core físico, e cada guest continua a apresentar a contagem total em nproc. O número indicado no plano é o limite máximo que pode solicitar. Não indica nada sobre o que está reservado para si.
A taxa de overselling indica quantas vCPUs um host vende por core físico. Numa relação de 1:1, o core é exclusivamente seu. Os planos baratos usam taxas mais elevadas, e essa relação quase nunca é publicada. Por isso, interprete qualquer plano que não indique "dedicated core" ou "dedicated vCPU" como partilhado. O uso partilhado funciona para a maioria das cargas, porque a maioria dos servidores está inativa durante grande parte do tempo. Deixa de funcionar quando o seu período de maior atividade coincide com o período de maior atividade dos restantes utilizadores.
Pode medir o efeito a partir do guest. Quando a sua vCPU está pronta para executar e o host atribui o core físico a outro guest, essa espera é contabilizada como steal time: a coluna st em vmstat e %st em top. O steal time mostra nas suas próprias métricas o efeito de um vizinho ruidoso, e é o número mais útil deste guia, porque um plano não o pode falsificar.
Um core dedicado continua a ser partilhado de outras formas. A largura de banda da memória, a cache de último nível e o caminho de armazenamento pertencem ao host inteiro. "Dedicated vCPU" elimina a maior fonte de variação. Não elimina todas.
Verifique também o modelo de CPU, com lscpu. Dois planos podem indicar "4 vCPU" e, ainda assim, a velocidade de uma única thread diferir por um fator de dois, porque um dos hosts usa uma geração de CPU muito mais antiga. Silício antigo a um preço baixo é uma troca aceitável para um build agent e uma escolha inadequada para uma página de checkout.
"Largura de banda ilimitada" corresponde a pelo menos quatro produtos diferentes
O tráfego é descrito de quatro formas, e elas não são intercambiáveis.
- Uma franquia limitada. A oferta indica um número, como "2 TB por mês" ou semelhante. O importante é saber o que acontece depois: uma cobrança por cada TB adicional ou uma redução da velocidade para um valor muito baixo até à renovação do mês. Descubra qual das duas se aplica antes de precisar dessa informação.
- Um plano sem medição de tráfego com uma cláusula de utilização razoável. O tráfego não é contabilizado, e a política de utilização aceitável define o limite por extenso, em vez de o indicar com números. Procure nesse documento os termos "fair use", "sustained", "excessive" e "abuse".
- Um limite de velocidade da porta. Uma porta de 100 Mbit/s limita o tráfego pelas próprias características físicas, independentemente do que a política de tráfego indicar.
- Uma combinação das duas últimas opções: tráfego sem medição numa porta lenta. Este é o formato mais comum nos planos baratos e é uma oferta honesta, desde que leia a velocidade da porta.
The data behind this chart
[
{
"label": "100 Mbit/s",
"tb_ceiling_30d": 32,
"hours_per_tb": 22.2
},
{
"label": "200 Mbit/s",
"tb_ceiling_30d": 65,
"hours_per_tb": 11.1
},
{
"label": "500 Mbit/s",
"tb_ceiling_30d": 162,
"hours_per_tb": 4.4
},
{
"label": "1 Gbit/s",
"tb_ceiling_30d": 324,
"hours_per_tb": 2.2
}
]A velocidade da porta é um limite máximo fixo, e o cálculo é simples. 100 Mbit/s correspondem a 12.5 megabytes por segundo, portanto 30 dias dessa porta à velocidade máxima transferem cerca de 32 TB. Os mesmos 30 dias numa porta de 1 Gbit/s transferem 324 TB. Neste caso, TB significa 10^12 bytes, a unidade usada pelos hosts para faturar. Isto é um cálculo, não uma medição, e nenhum servidor real mantém a porta no limite máximo durante um mês inteiro.
A segunda coluna é a que altera os planos. Transferir um único terabyte demora cerca de 22.2 horas na porta de 100 Mbit/s e 2.2 horas na porta gigabit. Se o seu plano de recuperação for "transferir a cópia de segurança e recomeçar", esse número corresponde ao seu tempo de recuperação.
Há mais dois detalhes escondidos nesta linha da especificação. "1 Gbit/s shared" significa que a porta é partilhada com outros clientes, portanto o limite indicado acima representa o melhor caso e não uma garantia. Além disso, alguns hosts faturam o tráfego pelo percentil 95% da taxa amostrada, em vez de o calcularem pelo volume total, o que torna uma carga constante muito mais barata do que uma carga com picos.
Independentemente do que o plano indicar, meça a sua própria utilização. O vnstat lê os contadores da interface e mantém um histórico.
sudo apt install -y vnstat
sudo systemctl enable --now vnstat
vnstat -d
vnstat -mLogo após a instalação, o vnstat apresenta Not enough data available yet. porque a sua base de dados ainda não tem amostras. Volte no dia seguinte, e vnstat -m fornecerá um total mensal para comparar com a franquia que está a pagar.
A alegação de NVMe é real e pode ser verificada?
lsblk -d -o NAME,ROTA,SIZE,MODELROTA igual a 0 significa que foi indicado ao guest que o dispositivo não é rotacional. Esse valor vem do hypervisor, portanto descreve o que o host anuncia, e não o suporte físico subjacente. A coluna MODEL normalmente fica vazia para um disco virtio, como /dev/vda, e mostra um QEMU HARDDISK genérico para um disco ligado por SCSI. Está a utilizar um disco virtual, portanto a etiqueta não prova nada.
A propriedade que vale a pena verificar é a latência, e a distinção real é entre NVMe local e um volume ligado pela rede. Um volume de rede pode apresentar um valor elevado de throughput sequencial e, ainda assim, parecer lento, porque o throughput é medido com muitos pedidos em simultâneo, enquanto uma base de dados aguarda uma pequena escrita de cada vez. Meça com profundidade de fila 1 para avaliar a latência e, depois, com uma fila mais profunda para medir IOPS (operações de entrada/saída por segundo).
sudo apt install -y fio
fio --name=lat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=1 --numjobs=1 --runtime=60 --time_based --group_reporting
fio --name=iops --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=32 --numjobs=1 --runtime=60 --time_based --group_reporting
rm -f fiotestLeia o bloco clat percentiles, especificamente a linha 99.00th. Esse é o tempo de conclusão observado pelo um por cento mais lento dos seus pedidos e corresponde à espera que um utilizador sente como uma paragem. Como orientação geral, um NVMe local com profundidade de fila 1 responde em centenas de microssegundos, enquanto um volume ligado pela rede responde em milissegundos. Compare as suas duas execuções, em vez de confiar num único valor publicado, e execute o par três vezes ao longo de um dia, porque um disco partilhado com outros tenants comporta-se de forma diferente às 03:00 e às 20:00.
O fio grava primeiro o ficheiro de 1 GB, por isso deixe espaço livre no disco e lembre-se de que o teste consome qualquer limite de IOPS aplicado pelo plano. Quando quiser apenas uma leitura rápida, ioping -c 20 . apresenta a latência numa linha. Um benchmark só tem valor se puder ser repetido, por isso guarde as linhas de comando exatas e o output com a data associada.
O que está incluído e o que é cobrado à parte
- IPv4. Normalmente, 1 endereço está incluído. Alguns planos baratos fornecem um endereço partilhado atrás de NAT (tradução de endereços de rede), com algumas portas encaminhadas. Isso significa que não pode executar nada na porta 443. Confirme com
ip -4 addr show scope globalecurl -4 https://icanhazip.com. Respostas diferentes significam que está atrás de NAT. - IPv6. Um /64 encaminhado fornece endereços para contentores e para tudo o que quiser tornar acessível a partir do exterior. Um único /128 cobre o tráfego de saída e pouco mais.
- Backups. Os backups automáticos são normalmente um extra pago. Os snapshots são muitas vezes gratuitos, mas um snapshot fica na mesma infraestrutura que o disco copiado. Por isso, protege contra os seus próprios erros, mas não contra a perda do host. Mantenha uma cópia fora do servidor, independentemente do que o plano incluir.
- Proteção contra DDoS. Muitos hosts respondem a um ataque volumétrico de negação de serviço distribuída (distributed denial of service) encaminhando o seu endereço IP para null durante um período fixo. O servidor continua saudável. Fica simplesmente inacessível a partir da Internet. Pergunte qual é o limiar que desencadeia essa ação e durante quanto tempo dura o null route.
- Âmbito do suporte. Num plano não gerido, é o administrador de sistemas, e a responsabilidade do host termina no hypervisor e na rede. Esta é a maior diferença de custo efetiva entre dois planos com especificações idênticas.
- Licenças e painéis. Um painel de controlo, um sistema operativo comercial ou um extra de correio eletrónico podem custar mais por mês do que o próprio servidor.
Que tipo de virtualização está a comprar?
systemd-detect-virtkvm ou qemu significa virtualização completa: o seu próprio kernel e os módulos que escolher carregar nele. lxc, lxc-libvirt ou openvz significa um contentor que partilha o kernel do host. none significa bare metal.
A diferença é relevante quando o kernel é partilhado. sudo modprobe wireguard falha e ip link add dev wg0 type wireguard devolve RTNETLINK answers: Operation not supported porque um contentor não pode carregar um módulo do kernel que o host não tenha carregado. free -h pode mostrar a memória do host em vez da memória disponível para si quando o lxcfs está ausente. Nesse caso, o sistema de monitorização apresenta valores que não correspondem ao seu servidor. O swap é frequentemente partilhado com outros contentores. Além disso, executar máquinas virtuais dentro do seu VPS não é possível. Os planos de contentores são mais baratos por um motivo. Ainda assim, são uma escolha adequada para um site estático ou uma aplicação pequena.
Qual é o preço da renovação?
O preço anunciado muitas vezes cobre apenas o primeiro período. Procure a expressão "renews at" na página do pedido e confirme a duração do período associado ao desconto. Um desconto válido durante um ano e um desconto bloqueado durante toda a vigência do plano são produtos diferentes, apesar de aparecerem na mesma primeira fatura.
Leia as condições de reembolso com o mesmo cuidado. Verifique a duração do período de devolução, se começa no momento do pedido ou do provisionamento, se complementos como endereços IP adicionais são reembolsáveis e se um pagamento anual antecipado é devolvido proporcionalmente. Depois, crie um lembrete no calendário para uma semana antes da data de renovação, porque o momento mais barato para sair é antes da emissão da fatura.
Mudar mais tarde também tem custos. Transferir algumas centenas de gigabytes de dados, reconstruir a configuração, aguardar os valores de tempo de vida do DNS (domain name system) e, no caso de um servidor de correio, reconstruir a reputação do IP pode ocupar um fim de semana inteiro. Inclua esse fim de semana no cálculo quando uma poupança parecer convincente. Quanto custa realmente um VPS ao longo de um ano é o valor que deve comparar, não o primeiro mês.
O teste de aceitação de trinta minutos
Execute isto no novo servidor antes de migrar qualquer coisa e enquanto o período de reembolso ainda estiver aberto. Proteja-o primeiro: os primeiros dez minutos num novo VPS abrangem a conta de utilizador, as chaves e a firewall. Depois, instale as ferramentas.
sudo apt update
sudo apt install -y sysbench fio ioping sysstat stress-ng vnstat mtr-tiny curlVerificação 1: o que é que me forneceram realmente?
systemd-detect-virt
nproc
lscpu | grep -E 'Model name|MHz|Hypervisor'
free -h
lsblk -d -o NAME,ROTA,SIZE,MODEL
ip -4 addr show scope global
curl -4 -s https://icanhazip.comDeve ver o tipo de virtualização, um modelo de CPU e um valor de memória dentro de alguns por cento do que comprou. free -h indicar muito mais RAM do que a disponibilizada pelo plano significa que está num contentor sem lxcfs, e não que recebeu um bónus. Um endereço público de curl que nunca aparece em ip -4 addr significa que o endereço IPv4 é partilhado.
Verificação 2: qual é a velocidade de uma thread e quanto steal existe sob carga?
sysbench cpu --cpu-max-prime=20000 --threads=1 runRegiste a linha events per second. A velocidade de uma única thread determina a rapidez com que uma página é renderizada e quanto tempo demora uma compilação. É também o valor que mais diferencia os planos baratos. Agora, carregue todos os vCPU e observe o que o escalonador lhe atribui efetivamente.
stress-ng --cpu 0 --timeout 300s &
vmstat 1 30
mpstat -P ALL 1 10--cpu 0 inicia um worker por cada CPU online. Observe a coluna st em vmstat e %steal em mpstat. Valores ocasionais de um dígito num plano partilhado são normais. Um valor de steal com dois dígitos durante vários minutos significa que os núcleos físicos estão sobrelotados. O seu trabalho fica assim em fila atrás do trabalho de outro cliente. Execute sysbench novamente enquanto a carga estiver ativa. Uma pontuação de thread única que desaba significa que os seus vCPU estão a competir entre si. Normalmente, isso indica que são threads irmãs no mesmo núcleo, e não núcleos separados. Uma pontuação baixa com steal próximo de zero é o outro caso: existe um limite de CPU aplicado pelo host, que não pode ser visto diretamente a partir do guest.
Verificação 3: como se comporta o disco com uma profundidade de fila de 1?
Execute os dois comandos fio da secção sobre NVMe e guarde ambos os resultados: a latência do percentil 99 com profundidade de fila de 1 e os IOPS com profundidade de 32. Depois, verifique as escritas, porque muitos volumes são muito mais lentos nessa direção.
fio --name=wlat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randwrite --bs=4k --iodepth=1 --numjobs=1 --runtime=30 --time_based --group_reporting
rm -f fiotestUm valor sequencial de dd é o número que os anúncios gostam de apresentar e o menos útil que pode recolher. O streaming sequencial não é o tipo de operação que uma base de dados ou uma aplicação Web ocupada executa durante todo o dia. Recolha-o se quiser fazer a comparação. Tome a decisão com base na latência.
Verificação 4: como está a rede a partir do local onde estão os seus utilizadores?
Primeiro, descarregue um ficheiro grande para o VPS.
curl -o /dev/null -w 'in: %{speed_download} bytes/s\n' https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xzIsto testa apenas um caminho até ao seu servidor. Não testa mais nada. A direção importante é a que os seus utilizadores percorrem. Por isso, disponibilize um ficheiro e descarregue-o a partir de uma máquina próxima deles.
fallocate -l 100M /var/tmp/100mb.bin
python3 -m http.server 8080 --directory /var/tmpDepois, a partir de um portátil ou de um servidor próximo do seu público:
curl -o /dev/null -w 'down: %{speed_download} bytes/s\n' http://YOUR_SERVER_IP:8080/100mb.bin
mtr --report --report-cycles 50 YOUR_SERVER_IPA porta 8080 tem de estar aberta na firewall durante este teste. Feche-a e elimine o ficheiro depois. Pare também o servidor Python com Ctrl+C. No resultado de mtr, leia a coluna de perda na linha final. Perdas num salto intermédio, sem perdas no destino, são normais. Os routers respondem às mensagens ICMP (internet control message protocol) contabilizadas pelo mtr com baixa prioridade, e isso não representa perda no seu tráfego. A perda na última linha é real.
Repita o teste de rede durante a hora de maior utilização pelos seus utilizadores. Uma única amostra às 02:00 apenas informa sobre uma rede pouco utilizada.
Guarde os quatro resultados num ficheiro com a data e execute-os novamente daqui a um mês. Um plano que estava adequado no primeiro dia e lento na sexta semana é um plano cujo host ficou cheio. Ter os valores do primeiro dia é a diferença entre saber isso e tentar adivinhar.
Quando um VPS barato é a escolha certa
Um preço baixo tem benefícios reais e custos reais. CPUs mais antigas, uma taxa de overselling mais elevada, armazenamento de rede mais lento, suporte em regime de autoatendimento e redundância mais limitada são o que mantém o preço baixo. Escolha-os de acordo com a função do servidor.
Um plano barato é adequado para um ambiente de desenvolvimento, um executor de CI, um endpoint de VPN, um nó de monitorização, um destino de cópias de segurança ou um site estático. Todos esses serviços toleram um minuto de lentidão. Um plano barato é uma má escolha quando a latência faz parte do produto: uma página de checkout, uma API interativa, um servidor de jogos ou uma base de dados da qual outro serviço depende. O teste acima indica qual destas opções foi escolhida e faz isso enquanto a resposta ainda não tem qualquer custo.
FAQ
O que significa vCPU numa oferta de VPS barata?
Uma vCPU é um processador virtual apresentado ao seu sistema convidado. Quando possível, corresponde a uma thread que o escalonador do host executa num núcleo físico. É uma permissão para solicitar tempo de CPU, não hardware reservado, exceto quando a oferta indica "dedicated core" ou "dedicated vCPU". Os hosts vendem mais vCPUs do que o número de núcleos disponível. Essa proporção raramente é publicada, por isso deve medi-la. Execute stress-ng --cpu 0 --timeout 300s e observe a coluna st em vmstat 1. Um valor de steal na casa dos dois dígitos significa que está à espera de núcleos usados por outros sistemas convidados.
"Unlimited bandwidth" significa mesmo largura de banda ilimitada?
Não. O limite normalmente existe em dois locais fora da descrição do plano. A política de utilização aceitável define um limite de utilização razoável em texto, e a velocidade da porta define um teto absoluto em bytes. Uma porta de 100 Mbit/s não consegue transferir mais de cerca de 32 TB em 30 dias, mesmo à velocidade máxima. Por isso, confirme a velocidade da porta e procure na política os termos "fair use" e "sustained". Depois, acompanhe o que realmente envia com vnstat -m e compare-o com o limite incluído.
Como posso saber se o meu VPS usa realmente NVMe?
Não é possível confirmar o suporte físico a partir de um sistema convidado, porque lsblk apenas comunica o que o hypervisor anuncia: ROTA de 0 e uma cadeia de modelo vazia ou genérica. O que pode medir é o comportamento. Execute fio com --direct=1 em --iodepth=1 e consulte a latência de conclusão do percentil 99.00. O NVMe local responde em centenas de microssegundos. Um volume ligado pela rede responde em milissegundos, mesmo quando o débito sequencial parece impressionante. Repita o teste algumas vezes ao longo do dia, porque um disco partilhado não tem o mesmo desempenho às 03:00 e às 20:00.
O que devo testar antes de terminar o período de reembolso?
Quatro coisas, por esta ordem. O que a máquina realmente é, usando systemd-detect-virt, lscpu e free -h. A velocidade de uma única thread, usando sysbench cpu --cpu-max-prime=20000 --threads=1 run. O tempo de steal sob carga total, usando stress-ng --cpu 0 e monitorizando-o com vmstat 1. A latência do disco, usando fio com uma profundidade de fila de 1. Depois, meça a rede a partir de uma máquina próxima dos seus utilizadores com mtr e descarregue um ficheiro servido pela máquina. Trinta minutos são suficientes para tudo. Fazer estes testes antes de migrar qualquer coisa mantém o período de reembolso como margem de segurança.