Análise de Desempenho: Web API

Apresento nesse artigo um conjunto de procedimentos que podem ser utilizados para mensurar o desempenho que um Servidor Web que fornece uma API sobre o protocolo HTTP. Abordo um caso de uso semelhante ao de uma aplicação em uma instância EC2 da Amazon Web Services, utilizando a pilha de softwares LAMP.

[ Hits: 8.003 ]

Por: Saulo Gomes em 05/02/2016 | Blog: https://about.me/saulo.gomes


Conclusão e trabalhos futuros



Foram realizados 3 testes iguais utilizando o Jmeter, os dados coletados são apresentados na Figura 1 na forma de gráfico. Nesses testes a máquina virtual foi submetida a carga poucos segundos após ser iniciada, garantindo assim que não haviam outras tarefas ocupando recursos da mesma, apenas os processos necessários para o bom funcionamento do sistema como um todo.
Linux: Análise de Desempenho: Web API
A Figura 2 apresenta o comportamento dos recursos submetidos ao teste do Apache Bench, onde não havia tempo de pausa entre a progressão das requisições. É possível observar que há uma relação entre os I/O da rede e a Utilização de CPU.
Em momentos que a utilização de CPU chega a 100% há um aumento no tempo de resposta. Nos momentos em que o uso da CPU está acima de 90%, esse tempo já se apresenta mais longo, normalmente o tempo é entre 1,2 a 0,1 segundos, nos momentos de pico de utilização o tempo chega à 4 segundos, essa informação é apresentada como saída do comando Apache Bench, um valor não aceitável em alguns tipos de serviços online.

O uso de memória não fica comprometido com esse tipo de aplicação, a entrada e saída de dados no disco é mais utilizada em altos valores de requisições, acima de 90 requisições, devido ao fato do servidor Web escrever mais informações nos arquivos de logs.

Os scripts, logs e planilha com os dados analisados estão disponíveis em [Gomes, 2015], para futura reprodução de experimento. Existem alterações que podem ser realizadas para melhorar o desempenho de alguns recursos, tais como alteração nas configurações do SGDB, do Servidor Web e de opções do Kernel Linux.

Entre os trabalhos futuros destacam-se:
  1. Uso mais amplo da API (Web Service), simulando mais de uma requisição para cada usuário único;
  2. Utilizar um processador Multicore, alterando o módulo mpm_prefork pelo mpm_work do servidor Web Apache;
  3. Realizar tuning de Kernel, SGBD e Servidor Web. Um trade-off entre o uso de memória e carga de CPU.

Com a crescente dependência tecnológica que a sociedade atualmente possui, planejamento e gerência de capacidade são assuntos que fazem parte do cotidiano de profissionais que trabalham com infraestrutura computacional, para garantir a qualidade de serviço e competitividade entre fornecedores de soluções na nuvem se faz necessário a difusão de técnicas e estudos sobre ambientes dessa natureza. A realização desse tipo de estudo comprova a necessidade de investimento em infraestrutura para o bom fornecimento de serviço.

Referências

[Araujo & Cavalcante. 2012] Araujo, B. D. L; Cavalcante, V. M. R. M. (2012) Computação em Nuvens: Contribuição para a Sustentabilidade Econômica e Ecológica. I ERIPE (Revista da Escola Regional de Informática de PE).

[Buyya et al, 2011] Buyya, Rajkumar; Broberg, James; Goscinski, Andrzej. Cloud Computing - Principles and Paradigms; 1. ed New Jersey, U.S. : John Wiley & Sons, Inc. 2011. 664p. ISBN: 978-0-470-88799-8

[EFE. 2015] Agencia EFE. Internet terá 100 bilhões de dispositivos conectados em 2020, projeta consultoria. Disponível em: < http://exame.abril.com.br/tecnologia/noticias/internet-lidara-com-100-bilhoes-de-dispositivos-em-2020 >. Acessado em: 24 out. 2015.

[Gomes, 2015] Gomes, S. Artigo_Capacity_Planning_2015. Disponível em: < https://github.com/saulobr88/Artigo_CapacityPlanning_2015 >. Acessado em 31 jan 2016.

[Jain. 1991] Jain, R. The Art of Computer Systems Performance Analysis: techniques for experimental design, measurement, simulation and modeling, John Wiley, 1991, ISBN: 0-471-50336-3

[Melo et al. 2006] Melo, C. A., Arcoverde, D. F., Moraes, E. R. A., Pimentel, J. H. C., Freitas, R. Q. (2006) Software como Serviço: Um Modelo de Negócio Emergente. UFPE.

[Menescé et al, 2004] Menescé, D. A. Almeida, V. A. F. Dowdy L. W. Performance by Design - Capacity Planning by Example. Prentice Hall PTR, 2004. ISBN: 0-13-090673-5. 552p.

[Mohamed et Al, 2014] Mohamed, R. P. Kolovos, D. S. Paige, R. F. Resource Requirement Analysis for Web Applications Running in a Virtualised Environment, 2014 IEEE 6th International Conference on Cloud Computing Technology and Science.

[Souza et al. 2009] Souza, F. R. C., Moreira, L. O., Machado, J. C. (2009). Computação em Nuvem - Conceitos, Tecnologias, Aplicações e Desafios. III Escola Regional de Computação Ceará - Maranhão - Piauí (ERCEMAPI).

[Velte, 2011] Velte, A; Velte, T. J.; Elsenpeter, R. Computação em Nuvem: Uma abordagem prática.1 ed. Rio de Janeiro: Alta Books, 2011.

Página anterior    

Páginas do artigo
   1. Resumo
   2. Fundamentação teórica
   3. Metodologia proposta e medição do ambiente virtual
   4. Conclusão e trabalhos futuros
Outros artigos deste autor

Análise de Desempenho: Web API - Recursos técnicos

Leitura recomendada

Docker - Containers em Linux

Proxy Squid com SquidGuard + Controle de Banda e Autenticação NTLM no Samba 4 (CentOS 6.5 - 64 bits Minimal)

Envio de e-mail criptografado pelo Zabbix usando Postfix

Ansible - Instalação em massa Agent Zabbix

Trabalhando com subredes

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts