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: 6.506 ]

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

WebHTB - Controle de banda de internet

Criando e Consumindo Rede de Compartilhamento NFS

Zoneminder: Substituindo um Unifi NVR

Sincronizando Bases OpenLDAP e Active Directory

Configurando Zabbix 3.4 no CentOS 7

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts