terça-feira, 31 de janeiro de 2017

Toolbox Benchmark :: Ferramentas de Teste de Performance de Web Servers no Linux



Você sempre quis saber o quanto de carga seu servidor Web aguenta? Sempre quis testar, garantir ou refutar a capacidade do seu host ou VPS? Sempre quis saber qual configuração do seu Apache ou NGINX funciona melhor para o seu tipo de serviço? Continue lendo este post e veja X ferramentas que podem te auxiliar no teste de carga do seu Site ou API.

Sempre que eu preciso utlizar um teste de carga em alguma parte dos meus projetos, eu utilizo bastante essas ferramentas, principalmente o ab pela simplicidade. Eu recomendo bastante os itens a seguir:

Apache Benchmark - Ab



O Apache Benchmark (vulgo ab) é um um cli para benchmark de web services muito poderoso. Pode automatizar numeros muito altos de requests, simular concorrência, conexões Keep Alive além de possuir suporte para REST como POST/PUT/GET e uma autenticação via HTTP básica. Ele é da Apache, porém pode ser utilizado para testar qualquer tipo de Web Service ou API, seja em Apache, NGINX, Node, Django e etc. Ele é simples e muito performático, mas pra testes que requerem sessão, cookies e etc, seu uso pode ser um pouco problemático.

Site do projeto: http://httpd.apache.org/docs/2.4/programs/ab.html

A Instalação do ApacheBench é simples. Está disponível dos repositórios da maioria das distribuições como o pacote de ferramentas adicionais do Apache.
 # apt-get install apache2-utils  
 # ab -kc 1000 -t 60 http://minhaapi.com  
 # ab -n 10000 -c 100 http://minhaapi.com  

Onde:
 - kc (Keep Connected) Simula uma conexão persistente  
 - t  Seta um tempo de timeout de Keep Alive da requisição  
 - n Um numero de conexões simultâneas   
 - c  Simula um numero de usuários concorrentes na aplicação   


HTTPerf

O HTTPerf é uma alternativa bacana ao Client do Apachebench. Igualmente poderosos e possui opções bem bacanas para customizar o load test do sistema. É um pouco mais verboso que o AB, mas atende igual.

Git do projeto: https://github.com/httperf/httperf

 # sudo apt-get install httperf  
 # httperf --server minhaapi.com --port 80 --num-conns 1000 --rate 1  
 # httperf --client=0/1 --server=minhaapi.com --port=2206 --uri=/login --send-buffer=4096 --recv-buffer=16384 --num-conns=8000 --num-calls=10  

Onde:
 -- server : Servidor requisitado   
 -- port: porta do servidor a ser requisitada   
 -- num-conns: numero de conexões no teste  
 -- rate: numero de conexões por segundo  
 -- uri: metodo requisitado da API  


Outras opções: 

CURL - Loader



Site: http://curl-loader.sourceforge.net/

JMeter


Site: http://jmeter.apache.org/







SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Analista DevOps e Desenvolvedor Web Backend. Apaixonado por Linux, Arquitetura, API's, Containers, Integração, Código, Testes, Escalabilidade e Cloud. :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com