Testando a Performance de Disco da VPS: fio e dd na Prática

Tempo de leitura: 3 minutos

Todo provedor promete disco rápido, mas a única forma de confirmar é medindo você mesmo. Este guia mostra como testar a performance de disco da sua VPS com duas ferramentas: o dd, mais simples, e o fio, mais completo e preciso.

O Cloud VPS Brasil da Rubfy roda só com SSD NVMe, então se quiser comparar com o que está usando hoje, os testes abaixo servem como referência direta.

Teste rápido com dd

O dd já vem instalado em qualquer distribuição Linux. É um teste simples de escrita sequencial:

dd if=/dev/zero of=teste.tmp bs=1M count=1024 oflag=direct
rm teste.tmp

Isso escreve 1 GB de dados e mostra a velocidade em MB/s no final. O oflag=direct é importante: sem ele, o resultado mede a velocidade de escrever no cache de memória, não no disco de verdade, dando um número artificialmente alto.

O dd é útil pra um número rápido, mas mede só escrita sequencial. A maioria das aplicações reais (banco de dados, WordPress) faz muita leitura e escrita pequena e aleatória, não sequencial. É aí que entra o fio.

Instalando o fio

sudo apt update
sudo apt install fio -y

Testando IOPS aleatório (o que mais importa pra banco de dados)

fio --name=teste-random --directory=. --size=1G --time_based --runtime=30s \
    --ramp_time=2s --ioengine=libaio --direct=1 --verify=0 \
    --bs=4K --iodepth=64 --rw=randrw --rwmixread=75 --group_reporting

Esse teste simula um padrão de acesso parecido com o de um banco de dados: blocos pequenos de 4K, mistura de 75% leitura e 25% escrita, de forma aleatória. No resultado, preste atenção em duas métricas:

  • IOPS: quantas operações de entrada/saída por segundo o disco consegue sustentar. Quanto maior, melhor pra bancos de dados e cargas com muitos acessos pequenos.
  • lat (latência): o tempo médio de cada operação. Quanto menor, mais responsivo o disco.

Testando throughput sequencial (o que importa pra backup e streaming)

fio --name=teste-sequencial --directory=. --size=1G --time_based --runtime=30s \
    --ramp_time=2s --ioengine=libaio --direct=1 --verify=0 \
    --bs=1M --iodepth=16 --rw=write --group_reporting

Aqui o número que importa é o throughput em MB/s, mostrado no final como bw= (bandwidth). É a métrica relevante pra copiar arquivos grandes, restaurar backup ou fazer streaming.

O que é um número bom

Como referência geral (os números variam por configuração exata do provedor):

  • HDD tradicional: algumas centenas de IOPS, throughput de 100 a 200 MB/s.
  • SSD SATA: alguns milhares de IOPS, throughput de 400 a 550 MB/s.
  • SSD NVMe: dezenas de milhares de IOPS ou mais, throughput acima de 1 GB/s.

Se o resultado do seu teste estiver muito abaixo do esperado pro tipo de disco anunciado, vale abrir um ticket com o provedor pra confirmar se não há algum limite (throttling) sendo aplicado.

Limpando os arquivos de teste

O fio cria arquivos temporários no diretório informado em --directory. Depois dos testes, confirme que foram removidos:

ls -lh teste-*

Conclusão

O dd serve pra um número rápido, mas o fio é quem mostra o comportamento real do disco sob o tipo de carga que sua aplicação vai gerar. Rodar esses testes antes de contratar (ou depois, pra conferir) tira a dúvida de vez sobre se o disco entrega o que promete.

Rode isso numa VPS de verdade

Já testou e quer um disco de verdade rápido? O Cloud VPS Brasil da Rubfy roda só com SSD NVMe, Intel Xeon Gold, tráfego ilimitado e suporte humano de verdade via WhatsApp e ticket, com preço fixo em reais.