Siege HTTP Benchmark

Recentemente pesquisando sobre balanceamento de carga e também como melhorar performance do nginx, esbarrei com uma ferramenta simples e ao mesmo tempo muito útil. Para exemplificar melhor a situação vamos considerar uma instancia com 1GB de RAM, 2 CPUs e um Debian8, calma, não se prenda muito nesses valores.


Primeiro passo foi entender o que poderia fazer a diferença no nginx.conf. Encontrei duas opções logo no inicio que chamaram muito atenção: worker_processes e worker_connections. Na documentação oficial do nginx existe uma recomendação de preencher o worker_processes com total de CPUs e no worker_connections o valor obtido através do resultado do comando: ulimit -n.


Obs: Total de cpu pode ser obtido através do comando:

cat /proc/cpuinfo |grep -i processor |wc -l

Próximo passo foi encontrar uma ferramenta que fosse capaz de realizar um teste de performance, algo semelhante ao que o AB faz com o Apache. Afinal de contas, será que os valores indicados estão sendo levados em consideração? Foi nesse momento que encontrei o Siege, uma excelente opção capaz de realizar esse teste.


Instalação é muito fácil, está disponível no repositório brew(osx) e também no repositório do Ubuntu. Hmm, putz! estamos usando Debian não é mesmo? Falei para não se prender naqueles valores, hehehe. Pois bem, adicione um repositório ai:
vim /etc/apt/sources.list
deb http://ftp.de.debian.org/debian sid main


Existem muitas opções disponíveis para que possamos estressar nosso webserver através do Siege. Recomendo muito a leitura da documentação. Devido a limitação do meu ambiente virtual, montei esse post considerando apenas duas: -t(tempo de execução) e -c(numero de conexões). Sintaxe ficou assim:

siege -t10s -c800 https://IP_DO_SEU_WEB_SERVER

Ao termino da execução do siege, vamos ter acesso a um relatório semelhante ao da imagem abaixo, onde é possível observar o tempo médio de execução, total de dados transferidos, tempo médio de resposta por usuário...








O post chega ao fim não porque esgotamos todas as possibilidades, longe disso, o nginx possibilita uma gamma muito maior de opções a serem alteradas quando o assunto é performance. Foco foi apenas em apresentar uma boa ferramenta para estressar seu webserver dentro da limitação do meu ambiente de testes.

Postagens mais visitadas deste blog

Cartão de Visita com Inkscape

MySQL Cluster

Esqueceu a senha root?