Amazon vs Rackspace: Análise de desempenho entre serviços na nuvem
Amazon vs Rackspace: benchmark com sysbench e hdparm para descobrir qual empresa oferece a máquina virtual mais rápida
Existem diversas empresas vendendo serviços de computação em nuvem. Neste artigo vamos analisar, entre Amazon e Rackspace, qual dessas empresas possui a melhor máquina virtual com menor custo em relação ao poder de processamento, velocidade do disco rígido e hospedagem de um banco de dados MySQL.
Rackspace, Google Compute Engine e a Amazon Web Services oferecem diversos tipos de hardware de máquinas virtuais e todas podem ser utilizadas para diversos propósitos. Por exemplo, você pode comprar uma máquina virtual para hospedar um blog ou uma aplicação que você está codificando.
Essas empresas mostram algumas configurações sobre suas máquinas virtuais, porém qual é a VM com maior poder de processamento para hospedar uma aplicação web, banco de dados ou serviço de vídeo?
Alguns componentes dessas máquinas virtuais serão testados com comandos disponíveis em distribuições Linux e você pode visualizar os resultados ao final do artigo.
Depois de estudar algumas ferramentas para realizar a análise de desempenho, selecionei esses comandos:
- sysbench e hdparm
Você pode ler mais sobre essas ferramentas no Ohloh, em suas respectivas home pages e outras referências citadas no final deste artigo.
Atenção: os testes foram coletados no dia 20 de março de 2013.
Em todos os casos as aplicações sysbench, hdparm e a versão de sistema operacional foram os mesmos.
- S.O: Ubuntu Server 12.04 LTS
- sysbench 0.4.12
- hdparm v9.37
- disk: 20 GB na disponível na raiz do sistema – /
Configurações das máquinas virtuais:
Rackspace
- type: 512 RAM (the first type of virtual machine on Rackspace)
- vCPUs: 1
- processor: AMD Opteron(tm) Processor 4170 HE (cat /proc/cpuinfo | grep ‘model name’)
- memory: RAM 512 MB
- disk: no information
- cost by hour: $0.022
- Maiores informações sobre VMs da Rackspace: http://www.rackspace.com/cloud/servers/pricing/
Amazon EC2 Micro
- zone: us-east-1c
- type: t1.micro
- vCPU: Up to 2 EC2 Compute Units (for short periodic bursts)
- processor: Intel(R) Xeon(R) CPU E5430 @ 2.66GHz (cat /proc/cpuinfo | grep ‘model name’)
- memory: 613 MiB memory
- disk: I/O Performance – Low
- cost by hour: $0.020 per Hour
- Maiores informações sobre VMs da Amazon Web Services: http://aws.amazon.com/ec2/instance-types/
Amazon EC2 Small
- zone: us-east-1b
- type: m1.small
- processor:
- 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
- Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz (cat /proc/cpuinfo | grep ‘model name’)
- memory: 1.7 GiB memory
- disk: I/O Performance: Moderate
- cost by hour: $0.060 per Hour
- Maiores informações sobre VMs da Amazon Web Services: http://aws.amazon.com/ec2/instance-types/
Comandos utilizados para medir o desempenho das VMs:
CPU:
- sysbench
1 |
sysbench --test=cpu --cpu-max-prime=20000 run |
Discos:
- hdparm
1 |
hdparm -t |
- sysbench
1 2 3 4 |
cd /root sysbench --test=fileio --file-total-size=5G prepare sysbench --test=fileio --file-total-size=5G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run sysbench --test=fileio --file-total-size=5G cleanup |
Database:
- sysbench
1 2 3 |
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=password prepare sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=password --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=1 run sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=password cleanup |
Resultados:
Os resultados coletados do benchmark realizados com processador, disco e com a aplicação MySQL são exibidos abaixo. Todos os testes foram retido três vezes e assim obter um resultado mais justo.
Discos:
- sysbench: O parâmetro escolhido para comparar as instâncias foi “Total transferred” [1]:
Amazon EC2 Micro:
1 2 3 |
Read 339.38Mb Written 226.25Mb Total transferred 565.62Mb (1.8854Mb/sec) Read 270.34Mb Written 180.22Mb Total transferred 450.56Mb (1.5017Mb/sec) Read 190.05Mb Written 126.69Mb Total transferred 316.73Mb (1.0557Mb/sec) |
Amazon EC2 Small:
1 2 3 |
Read 349.91Mb Written 233.27Mb Total transferred 583.17Mb (1.9439Mb/sec) Read 464.06Mb Written 309.38Mb Total transferred 773.44Mb (2.5781Mb/sec) Read 503.84Mb Written 335.89Mb Total transferred 839.73Mb (2.7878Mb/sec) |
Rackspace:
1 2 3 |
Read 513.11Mb Written 342.06Mb Total transferred 855.17Mb (2.8506Mb/sec) Read 567.05Mb Written 378.03Mb Total transferred 945.08Mb (3.1502Mb/sec) Read 560.42Mb Written 373.61Mb Total transferred 934.03Mb (3.1134Mb/sec) |
- hdparm
Amazon EC2 Micro
1 2 3 |
Timing buffered disk reads: 236 MB in 3.01 seconds = 78.38 MB/sec Timing buffered disk reads: 234 MB in 3.01 seconds = 77.84 MB/sec Timing buffered disk reads: 234 MB in 3.01 seconds = 77.84 MB/sec |
Amazon EC2 Small
1 2 3 |
Timing buffered disk reads: 164 MB in 3.01 seconds = 54.54 MB/sec Timing buffered disk reads: 202 MB in 3.01 seconds = 67.11 MB/sec Timing buffered disk reads: 176 MB in 3.03 seconds = 58.09 MB/sec |
Rackspace
1 2 3 |
Timing buffered disk reads: 280 MB in 3.09 seconds = 90.61 MB/sec Timing buffered disk reads: 320 MB in 3.01 seconds = 106.19 MB/sec Timing buffered disk reads: 312 MB in 3.01 seconds = 103.59 MB/sec |
Processador:
- sysbench: O parâmetro escolhido para comprar as instâncias foi “Total time” [1]:
Amazon EC2 Micro
1 2 3 |
total time: 87.9426s total time: 118.4636s total time: 96.8280s |
Amazon EC2 Small
1 2 3 |
total time: 68.9673s total time: 68.9334s total time: 68.9207s |
Rackspace
1 2 3 |
total time: 44.5527s total time: 44.6108s total time: 44.6342s |
Banco de dados:
- Mysql Benchmark: O parâmetro escolhido para comparar as duas instâncias foi “transactions” [1]
Amazon EC2 Micro
1 2 3 |
transactions: 8850 (147.28 per sec.) transactions: 9709 (161.78 per sec.) transactions: 8866 (147.70 per sec.) |
Amazon EC2 Small
1 2 3 |
transactions: 10711 (178.51 per sec.) transactions: 10766 (179.42 per sec.) transactions: 10678 (177.96 per sec.) |
Rackspace
1 2 3 |
transactions: 20982 (349.69 per sec.) transactions: 20432 (340.53 per sec.) transactions: 20483 (341.37 per sec.) |
Todos os resultados podem ser baixados neste arquivo para análise detalhada: cloudservers_benchmark-Amazon-vs-Rackspace.txt
Conclusão
A primeira máquina virtual disponível no Rackspace oferece o melhor hardware com um bom preço, pois seu desempenho em disco, processador e operações em um banco de dados são melhores do que Amazon EC2 Micro e Amazon EC2 Small.
Lembre-se que este artigo comparou somente alguns requisitos de hardware virtual que você precisa avaliar um serviço em nuvem. Também existem diversos outras funcionalidades e serviços que devem ser levados em consideração como o suporte, SLA e etc. Por exemplo, a Amazon Web Services possui diversos serviços adicionais de computação em nuvem em relação a Rackspace, isso pode tornar a Amazon mais viável para seu uso.
Referências:
Oi Mariano, artigo bacana!
Você já usou o Rackspace? É confiável?
Se me permite uma sugestão, colocar o valor médio das 3 medições, e um aviso daqueles “Quanto menos melhor” em cada benchmark. Acordar cedo e tentar lembrar que “taxa de transferência maior é melhor” judia do cérebro dos mais velhos 😀
Olá Rael. Ainda não utilizei o Rackspace, apenas nesses testes de desempenho. Porém eles me parecem confiáveis sim, no momento do cadastro o suporte dos EUA entra em contato com você por telefone para tirar algumas dúvidas e eles estão envolvido no projeto do openstack (http://www.openstack.org/foundation/companies/).
Obrigado pela sugestão! 🙂
Não concordo com um teste feito em um momento, até mesmo porque o Cloud depende da demanda concorrente para oferecer recursos.
Sugiro que voce tenha uma amostragem no tempo dos testes para que realmente seja comprovado isso que voce colocou em primeira instância.
Cordialmente,
Paulo
Olá Paulo, obrigado pelo sugestão. Em breve devo criar outra análise de desempenho entre os serviços da Amazon e Rackspace e devo utilizar sua dica.
Não guardei as informações de testes realizados nos outros dias que escrevia o artigo e selecionava os comandos para realizar a coleta dos dados, mas em todos os casos a Rackspace sempre foi mais rápida que a Amazon.
De qualquer forma acredito que um serviço em cloud não pode ter seu desempenho degradado pelo uso de recursos compartilhados. E a empresa que fornece o serviço de garantir a qualidade e disponbilidade dos recursos oferecidos.
Bom artigo!
Obrigado! 🙂