Review Discos na Amazon EBS, OVH e Oracle Cloud

Atualmente, presto consultoria para uma empresa de desenvolvimento de software que utiliza principalmente PHP e MySQL. Ao migrar os servidores para a AWS, escolhemos essa cloud devido à facilidade de gerenciamento e à sua reputação como líder de mercado. Além disso, em termos de preço, as principais provedoras de serviços em nuvem praticam valores semelhantes. E agora estou tendo problemas no desempenho do disco escolhido para armazenamento dos dados.

Após receber várias reclamações sobre a lentidão na execução de algumas consultas no servidor de Banco de Dados MySQL, decidi realizar uma análise mais detalhada para identificar a causa do problema.

Minha primeira análise concentrou-se na quantidade de memória alocada para o servidor, e ficou evidente que estava sendo utilizada uma quantidade muito pequena de memória. Sempre considero o lado da empresa para a qual presto serviços, evitando o desperdício de recursos ao alocar uma grande quantidade de memória, já que essa é uma commodity cara em ambientes de nuvem. Após essa análise, decidi aumentar a quantidade de memória para verificar se isso resolveria o problema.

Apesar dos novos testes terem apresentado uma melhora na velocidade das consultas, o problema persistia. Aumentar ainda mais a quantidade de memória não era uma solução viável, então decidi investigar o desempenho do disco que estava sendo utilizado no servidor.

A partir desse ponto, comecei a enfrentar um problema que não esperava. Optei por um disco EBS gp3, que oferecia 3.000 IOPS e uma taxa de transferência de 125 MB/s. Com esse disco, o servidor ficava dentro da mesma faixa de preço das outras provedoras de nuvem, e não imaginava que enfrentaria tantos problemas com ele. Afinal, havia a possibilidade de aumentar os recursos do disco gp3 conforme necessário. No entanto, como ficará claro ao longo deste artigo, essa opção não se mostrará economicamente viável.

Testando o disco

Para testar o disco eu utilizei o comando fio (flexible I/O tester), com ele eu consegui verificar o desempenho dos 4 discos testados: um disco da AWS EBS gp2 outro disco EBS gp3 configurado com 3000 IOPS e 125 MB/s de throughput, o disco de uma VPS na OVH, e um disco na Oracle Cloud com 3.000 IOPS e 24 MB/s de thoughput.

O comando que eu executei nos servidores foi o seguinte:

Esse comando cria um arquivo de 4 GB no disco testando a velocidade de leitura e escrita.

Disco Amazon EBS gp3 – 3.000 IOPS e 125 MB/s

Esse disco é o disco original do servidor MySQL que tenho em produção. Os valores que me chamaram a atenção foram os seguintes.

Read:
– IOPS Médio: 2.256
– Bandwidth: 9.019 KiB/s

Write:
– IOPS Médio: 753
– Bandwidth: 3.014 KiB/s

Tempo de execução:
– 5:48

Pelo que estou vendo a soma dos IOPS e das bandwidth de leitura e escrita esta representando os valores que eles estão oferecendo, no caso os 3.000 IOPS e os 125 MB/s, não sei se a proposta realmente é essa na verdade, pois o meu entendimento de como eles calculam isso ainda não esta muito claro.

O tempo que programa fio levou para gravar o arquivo de 4 GB e fazer a leitura também foi algo que chamou bastante a atenção, foram 5:48 minutos para um arquivo de 4 GB.

VPS na OVH com disco SSD NVMe

Como eu queria um servidor em outra empresa para poder comparar os valores, eu escolhi rodar o teste no servidor que tenho para hospedar esse site, ele é um VPS hospedado pela OVH. É importante ressaltar que ele não é um servidor VPS criado dentro do Serviço de Cloud que a OVH disponibiliza, ele é uma instancia vendida avulsa mesmo, quero deixar isso claro, pois creio que as maquinas dentro do serviço de nuvem podem sofrer as mesmas limitações de velocidade de disco que as maquinas da AWS ou da Oracle Cloud que foram testadas.

A seguir vou colocar os valores de desempenho apresentado por esse disco

Read:
– IOPS Médio: 12.000
– Bandwidth: 46.9 MiB/s

Write:
– IOPS Médio: 4.016
– Bandwidth: 15.7 MiB/s

Tempo de execução:
– 1:05

Disco Amazon EBS gp2

Depois do péssimo resultado que tive comparando o desempenho dos discos gp3 com o disco da OVH, decidi alocar um disco gp2 para poder comparar também, pois não acreditava que teria um desempenho tão ruim pagando tão mais caro, já que a maquina na OVH é muito mais barata. Como pode ser visto nos resultados abaixo a minha decepção continuou, na verdade até aumentou um pouco já que o tempo para execução foi ainda maior e o preço desse disco é maior que o gp3 com a configuração que eu tinha selecionado.

Read:
– IOPS Médio: 2.254
– Bandwidth: 9.019 KiB/s

Write:
– IOPS Médio: 753
– Bandwidth: 3.014 KiB/s

Tempo de execução:
– 6:20

Block Volume na Oracle Cloud

Para finalizar os meus testes e finalmente bater o martelo, decidi pegar uma maquina que tenho que esta na Oracle Cloud para realizar o teste. Os resultados da OCI foram ainda mais decepcionantes que os da AWS, como vocês podem verificar no valores abaixo; VAle lembrar que esse disco pelas especificações realmente era mais limitado do que os da Amazon EBS, pois a configuração dele era de 3.000 IOPS e 24 MB/s de thoughput.

Read:
– IOPS Médio: 2.256
– Bandwidth: 9.027 KiB/s

Write:
– IOPS Médio: 754
– Bandwidth: 3.017 KiB/s

Tempo de execução:
– 7:19

Conclusão

Como é possível verificar, o desempenho apresentados pela AWS tanto usando o gp2 quando o disco gp3 foram praticamente iguais ao desempenho apresentados pela Oracle Cloud o que me deixou bastante desapontado diga-se de passagem. Aumentar os recursos do disco gp3 para ele chegar no desempenho do disco NVMe da OVH provavelmente vai fazer a maquina saltar de preço de US$ 11, para mais de US$ 100, pois os valores para aumentar os recursos de IOPS e thoughput do EBS gp3 aumentam de forma bem agressiva, não vou nem perder tempo fazendo essa conta para confirmar isso.

O desempenho que a OVH apresentou foi muito surpreendente na minha opinião tendo em vista que é um servidor que custa apenas US$ 6, e o servidor na AWS com os mesmo recursos da OVH já começam custando US$ 11 é o dobro do preço por um desempenho de disco terrível.

Na minha opinião as vantagens que tenho com a AWS ou Oracle Cloud que são poder criar e gerenciar os servidores de forma facilitada, integrar com o DNS no momento da criação da maquina e gerenciar o firewall utilizando o Terraform não compensam essa perda de desempenho que é muito significativa.

Sem contar que boa parte da gerencia que faço pelo Terraform eu consigo fazer usando o Ansible e ele eu posso utilizar na maquina da OVH sem nenhum problema, por isso na minha opinião de agora em diante vou dar preferencia pelas maquinas na OVH já que me atendem com boa qualidade e tem um preço bem mais acessível.

Referências

Amazon EBS

Oracle Block Storage

VPS na OVH

Comandos do fio

Manual on-line do fio

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *