sábado, 23 de maio de 2009

SIEGE - Testando Carga em Servidores WEB

Depois de muito tempo.... felizmente.... mais um novo 'post'!

Estava esta semana configurando um novo servidor Apache e algumas perguntas me vieram a mente.

  1. Quantas threads eu preciso configurar para conseguir que ele entregue o máximo de desempenho?

  2. Meu servidor é capaz de devolver múltiplas requisições numa talagada só, mas até onde ele agüenta?

  3. A partir de quantas threads isso se torna desperdício?

De muito procurar por uma ferramenta que ajudasse a responder minhas perguntas achei o SIEGE.

O SIEGE executa um teste de carga em servidores WEB, o mesmo efetua o teste de desempenho de 2 maneiras:

  1. Simula o comportamento norma de um ser-humano navegando na internet, com o intervalo de 3 segundos entre cada 2 acessos;

  2. O segundo modo é conhecido como benchmark, onde os intervalos são eliminados e o SIEGE faz solicitações ao servidor ininterruptamente;

Pela configuração padrão do SIEGE, dispõe de uma tropa VIRTUAL de 10 'soldados', prontos para o ataque. Este parâmetro pode ser alterado com a seguinte opção:

--concurrent=quantidade_de_soldados

Vamos ao que interessa!

  1. Instalando o SIEGE:

Para usuários de distribuições derivadas do DEBIAN, não terão muita dificuldade, apenas usem o apt-get:

#apt-get install siege

Caso queiram compilar o pacote na 'munheca', sigam os passos abaixo:

  1. Entrem no site do desenvolvedor http://freshmeat.net/projects/siege/;

  2. Façam o download do SIEGE e salvem em \usr\local\src;

#cd /usr/local/src/

#wget http://freshmeat.net/urls/b2e94e779aa5343bfc0f50d3d798bd1e

  1. Descompacte o pacote e entre na pasta descompactada:

#tar -xvzf siege-latest.tar.gz

#cd siege-2.69/

  1. Compile o pacote:

#./configure

#make

#make uninstall (só necessário se você tiver alguma versão antiga do SIEGE instalada nesta estação)

#Make install


#siege.config

Este último é para gerar o arquivo de configuração que fica dentro da pasta raiz do usuário que instalou o mesmo. Ex.: ~/usuário/.siegerc

Pronto para a batalha!

Atacaaaaaaaaaaar!

  1. Quais o servidores testaremos? Abaixo segue as duas maneiras de fazer isso:

    1. #siege www.páginateste.com.br/index.html

    2. #siege -f arquivo_com_sites.txt

  1. Aumentando o número de soldados, apenas acrescentar a opção -c seguida do número de usuários:

    1. #siege www.páginateste.com.br/index.html -c10

    2. #siege www.páginateste.com.br/index.html -c100

    3. #siege -f arquivo_com_sites.txt -c10

    4. #siege -f arquivo_com_sites.txt -c100

  1. Acrescentando o -b você ativa a opção de benchmark, no qual a mesma dispensa o intervalo em que são feitas as solicitações e faz solicitações ininterruptamente:

    1. #siege www.páginateste.com.br/index.html -c10 -b

    2. #siege www.páginateste.com.br/index.html -c100 -b

    3. #siege -f arquivo_com_sites.txt -c10 -b

    4. #siege -f arquivo_com_sites.txt -c100 -b

Fim do ataque!

Para limitar o tempo dos teste, acrescente a opção -t, seguida do tempo em minutos:

    1. #siege www.páginateste.com.br/index.html -c10 -b -t1

    2. #siege www.páginateste.com.br/index.html -c100 -b -t2

    3. #siege -f arquivo_com_sites.txt -c10 -b -t5

    4. #siege -f arquivo_com_sites.txt -c100 -b -t10

Caso você queria interromper manualmente, aperte CTRL+C.

No final dos testes será apresentado um relatório como este abaixo:


Mais uma vez agradeço a todos!

Abraços!
Sabocinski

Nenhum comentário:

Postar um comentário