Benchmarking, técnica para medir o desempenho de algum objeto computacional através de diversos testes, e testes de estresse são algumas vezes necessárias para verificar o desempenho do sistema e remover “gargalos” causados pelo hardware e que podem comprometer o desempenho de VPS Linux
No caso de VPS’s Linux isso pode ser, facilmente, feito através de alguns testes simples para medir o quão satisfatório está o desempenho do sistema.
Desempenho de VPS Linux
Ter noção de quanto um determinado hardware, executado sobre determinado sistema, suporta é importante para decidir quais ferramentas usar ou quanto você precisa melhorar, computacionalmente falando, para atingir determinado objetivo. Isso é importante antes de, simplesmente, culpar e considerar sua aplicação/site “pesado”.
Saiba como realizar testes simples de desempenho de hardware em sistemas Linux
Alguns exemplos de que o comando dd pode ser considerado umas das ferramentas mais versáteis do Linux
Nos testes, a seguir, irei focar no uso do comando “dd” para uma ideia rápida de desempenho do seu servidor Linux ou VPS. A partir desses testes, você verá se há necessidade de comparações adicionais, usando ferramentas mais complexas, ou reportar problemas junto ao seu provedor de cloud, caso tenha alguma inconsistência detectada.
Avaliar disco, memória e CPU
Os testes abaixo foram executados em um VPS Linux hospedada na DigitalOcean, com carga de 4GB de RAM, 2 Cores e 80GB SSD. Se você estiver interessado em uma hospedagem VPS super rápida baseada em SSD, poderá testar, gratuitamente, usando esse link.
Saiba como criar um servidor VPS Linux na infraestrutura de nuvem da DigitalOcean
Por quais motivos a hospedagem VPS Linux é a melhor opção para seu projeto?
Teste 1: Desempenho de gravação em disco
O desempenho de leitura/escrita do disco tem um grande impacto no desempenho do sistema Linux e na experiência do usuário. Simplesmente, quanto mais rápido for o HD melhor desempenho terá o sistema.
Para começar, você deve mudar para um diretório no qual tenha permissões de leitura e gravação:
mkdir /home/bench/ cd /home/bench/
Certifique-se de ter alguns gigabytes de espaço livre em disco.
Em seguida, use o seguinte comando para testar a velocidade de gravação do seu armazenamento:
dd if=/dev/zero of=diskbench bs=1M count=1024 conv=fdatasync
Onde,
– ‘if=/dev/zero‘ representa dispositivo nulo em loop de zeros;
– ‘of=diskbench‘ representa o arquivo dentro do diretório /home/bench;
– ‘bs=1M’ representa o tamanho do bloco (número de bytes a serem lidos/gravados de cada vez).
– ‘count=1024’ representa o número de iterações a serem realizadas. No caso uma iteração com tamanho de bloco ‘1M’ = 1 GB.
– ‘conv=fdatasync’ representa o parâmetro de conversão. A opção permite gravar fisicamente os dados do arquivo de saída antes de terminar.
O comando acima criou um arquivo de 1 GB contendo apenas zeros, no diretório atual e deu uma visão geral de velocidade de gravação no HD, no caso levou 5.6 segundos para criar o arquivo numa taxa de 191 MB/s.
Teste 2: Desempenho de leitura de armazenamento
Agora, vamos excluir o cache de buffer do servidor para medir as velocidades de “leitura” direto do disco:
echo 3 | sudo tee /proc/sys/vm/drop_caches
Agora que o cache foi excluído, podemos testar o desempenho de leitura do disco do arquivo “diskbench” usando:
dd if=diskbench of=/dev/null bs=1M count=1024
Onde, nesse comando, foi apenas alterado a ordem – primeiro ler o arquivo criado em dispositivo nulo (/dev/null) com tamanho pré-fixado, anteriormente (1GB).
Observa-se que foi levado 4.2 segundos para ler o arquivo numa taxa de 253 MB/s.
Teste 3: Desempenho de leitura com buffer de memória
Depois de executar o comando acima, os dados serão enviados para o cache com buffer de memória. Então, vamos testar as velocidades de leitura usando o buffer de memória, repetindo o comando anterior:
dd if=diskbench of=/dev/null bs=1M count=1024
Observe na velocidade maior para leitura. Inclusive, você deve executar este teste algumas vezes para encontrar a média.
Por fim, lembre-se de excluir o arquivo de teste:
rm -f /home/bench/diskbench
Se os resultados apontarem para um baixo desempenho de leitura/gravação, talvez você queira examinar o upgrade de hardware ou alterar sua VPS/provedor. Além disso, testes mais extensivos podem ser realizados usando fio, bonnie++ ou IOzone.
Teste 4: Desempenho da CPU
Para verificar a velocidade da CPU e de seus núcleos, use os seguintes comandos:
lscpu
Ele reúne informações da CPU do arquivo /proc/cpuinfo. As informações incluem o número de CPUs, threads, núcleos, etc. Há também informações sobre os caches da CPU e compartilhamento de cache, família, modelo, e ordem de bytes, por exemplo.
nproc
Ele imprime o número de unidades de processamento (núcleos cpu) disponíveis.
Munido dessas informações, execute outra variação do comando “dd” para realizar um benchmark de CPU simples:
dd if=/dev/zero bs=1M count=1024 | md5sum
Para a maioria das CPUs modernas, você verá no mínimo 300 MB/s. Menor do que isso, você deve solicitar novos testes mais precisos usando o unixbench, por exemplo.
Via | Handeyjames