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

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


Metodologia proposta e medição do ambiente virtual



Metodologia Proposta

Utilizando o software para coleta de dados Collectl, presente nos repositórios de distribuições Linux, serão coletados dados referentes ao uso do processador, memória, entrada e saída de disco e rede. Será utilizado um Bash Script que será executado 5 segundos antes do gerador de carga iniciar as requisições.

A aplicação fornecida pelo servidor web será uma API simples, para simular um ambiente de informações distribuídas, ambiente comumente utilizado por aplicações de dispositivos móveis e sistemas distribuídos que usam o protocolo HTTP para troca de informações. A

base de dados utilizada é a Sakila Database, base fornecida pela equipe do MySQL para utilização em livros, tutoriais, artigos e experimentos de forma geral. A consulta utilizada nos testes retorna as 200 linhas da tabela 'actor' da base de dados.

Os sofwares Jmeter e Apache Bench, fornecidos pela Fundação Apache, serão utilizados para a simulação de carga no ambiente.

Medição do Ambiente Virtual

A máquina virtual será executada pelo programa VirtualBox, a máquina terá apenas um núcleo de processamento e 1GB de memória principal, com essa configuração estará próxima da configuração fornecida pela Amazon para o serviço gratuito de instância EC2, que é uma máquina virtual disponível pelo prazo de um ano. O perfil dos softwares do servidor são:
  • distribuição Linux Ubuntu Server
  • servidor Web Apache
  • interpretador PHP
  • servidor MySQL

Foram utilizadas as versões mais recentes disponíveis nos repositórios da distribuição. Por padrão o servidor Web Apache possui uma configuração para responder até 150 requisições concorrentes.

Para a geração da carga de trabalho será utilizado o Apache Jmeter, versão 2.13r1665067. A carga gerada terá um comportamento crescente de requisições concorrentes, de acordo com a seguinte progressão: 1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150. Com um tempo de inicialização de 5 segundos para cada grupo de usuários do Jmeter. O Apache Bench usará a mesma progressão.

Página anterior     Próxima página

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

FreeRadius 3 + iODBC + Base de Dados em MS SQL Server 2008 no Ubuntu Server - Guia definitivo

Roubando bits - Receita para cálculo de sub-redes

Docker - Containers em Linux (parte 2)

Montagem de Cluster

icinga no Ubuntu 13.10 - Instalação e configuração

  
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