zanin Posted April 17, 2012 Share Posted April 17, 2012 Beleza pessoal? Existe uma ferramenta chamada ab (Apache Benchmark). Ela é usada, como o nome sugere, para executar testes de desempenho do Apache. Eu tenho usado esta tool as vezes em alguns testes básicos, mas certo dia vasculhando a página do manual (man ab) descobri um parâmetro interessante: -g (gnuplot-file). Como já conheço o gnuplot, resolvi dar uma googada para ver se minhas suspeita se confirmava: criar gráficos dos testes do ab. O resultado foi que achei um monte de páginas, e sim! O parâmetro era para isso mesmo! Transformar os resultados do ab em gráfico. :ph34r: Blah blah blah concluído, vou fazer uma síntese rápida sobre como fazer um teste como este: O teste será baseado em três simulações usando o ab, emulando o acesso de até 50 usuários efetuando 10 requisições por segundo. Será feita a primeira simulação, depois a segunda e depois a terceira. Vamos pegar os dados das três simulações e plotar em um gráfico através do gnuplot. O meu ambiente de simulação foi feito usando dois VPS. Onde um dos VPS foi onde efetuei os comandos para gerar os testes e o gráfico, e no outro VPS é o servidor alvo de meu teste (www.meusite.com). 1 - Instalar as ferramentas necessárias: httpd-tools gnuplot yum install httpd-tools gnuplot 2 - Vamos fazer a primeira simulação de acesso: ab -c 10 -n 50 -k -g /home/username/public_html/bench1.tsv http://seusite.com/ Não vou detalhar o comando acima, até porque logo no final deste texto terá links referentes as ferramentas usadas. Mas vale a pena algumas considerações: Substitua os parâmetros de acordo com sua necessidade. Neste caso, esta primeira simulação será gravada com o nome bench1.tsv no caminho abaixo: /home/username/public_html/bench1.tsv Eu optei salvar este arquivo na pasta public_html para me facilitar a visualização do gráfico. Logo após este parâmetro, temos outro parâmetro que é o site alvo, neste exemplo: http://seusite.com/ Troque-o de acordo com sua necessidade. Nota: é importante a barra "/" no final do endereço! 3 - Faça novamente o teste, mas mude o nome do arquivo bench2.tsv para que ele salve nosso segundo teste: ab -c 10 -n 50 -k -g /home/username/public_html/bench2.tsv http://seusite.com/ 4 - O mesmo para a última simulação (mudando novamente o nome para salvar a terceira simulação): ab -c 10 -n 50 -k -g /home/username/public_html/bench3.tsv http://seusite.com/ 5 - Agora temos nossas simulações salvas em 3 arquivos. Vá até a pasta onde salvamos os arquivos, no caso /home/username/public_html e vamos executar o gnuplot: <p>$ cd /home/username/public_html</p> <p>$ gnuplot</p> 6 - Neste ponto, você estará no prompt do gnuplot. Então vamos construir o gráfico: gnuplot> set terminal png gnuplot> set output "benchmark.png" gnuplot> set title "Benchmark for meusite.com" gnuplot> set size 1,1 gnuplot> set grid y gnuplot> set xlabel 'Requisicoes' gnuplot> set ylabel 'Tempo de Resposta (ms)' gnuplot> plot "bench1.tsv" using 10 smooth sbezier with lines title "Benchmark 1:", "bench2.tsv" using 10 smooth sbezier with lines title "Benchmark 2:", "bench3.tsv" using 10 smooth sbezier with lines title "Benchmark 3:" gnuplot> exit Pronto! Vc acaba de criar um arquivo na pasta home/username/public_html chamado de benchmark.png e poderá ver os resultados. Você pode usar este recurso para comparar o desempenho de seu site com outros por exemplo, ou verificar alterações de desempenho após alterar parâmetros de seu servidor, etc... Para facilitar sua vida, o gnuplot permite que você use um template de parâmetros, evitando ter que digitar os comandos do passo 6: Crie um arquivo chamado template.tpl e preencha o arquivo com o conteúdo abaixo: # Saída como imagem PNG set terminal png # Salvar o arquivo como "benchmark.png" set output "benchmark.png" # Título do gráfico set title "Benchmark de meusite.com" # Relação do tamanho da imagem set size 1,1 # Habilita grade para o eixo Y set grid y # Rótulo para o eixo X set xlabel "Requisicoes" # Rótulo do eixo Y set ylabel "Tempo de Resposta (ms)" # plot data from bench1.tsv,bench2.tsv and bench3.tsv using column 10 with smooth sbezier lines plot "bench1.tsv" using 10 smooth sbezier with lines title "Benchmark 1:", \ "bench2.tsv" using 10 smooth sbezier with lines title "Benchmark 2:", \ "bench3.tsv" using 10 smooth sbezier with lines title "Benchmark 3:" Com este arquivo criado, você executa os itens 2, 3 e 4 para gerar os dados da simulação e para gerar o gráfico, usamos o nosso template com o comando: gnuplot template.tpl Espero ter ajudado com essa dica. Abraços!! Sites de referência e consulta: http://httpd.apache....rograms/ab.html http://www.gnuplot.info/ http://www.karlosp.n...s-with-gnuplot/ http://tjholowaychuk...hing-benchmarks http://www.yolinux.c...nchmarking.html http://blog.secaserv...ache-benchmark/ Link to comment Share on other sites More sharing options...
Jordan Miguel Posted April 17, 2012 Share Posted April 17, 2012 Ótimo tutorial zanin! Deve ter sido bem trabalhoso finalizar o gráfico, imagina o tutorial rsrs @Edit: UAHEUHAE, foi mal cara, acho que li um artigo em outro lugar e confundí. Link to comment Share on other sites More sharing options...
zanin Posted April 17, 2012 Author Share Posted April 17, 2012 kkk Vou pedir ao Chuva para agradecer então.. kkkkk Link to comment Share on other sites More sharing options...
Recommended Posts