Nesse cenário caótico é possível coletar dados e saber o que está provocando tanto problema, claro que além dos arquivos de logs, no nosso caso o Tomcat.
Quando já deu m#$*& nada melhor do que verificar o que ta acontecendo em tempo real e correr pra resolver.
Relembrando algumas práticas,
fazendo outras pesquisas, compilei aqui algumas
técnicas aplicadas no container web Tomcat que, de modo geral, pode nortear os
rumos pra solução de erros em um cenário como descrito.
Três fatores impactam negativamente o
desempenho do Tomcat mais do que qualquer outros:
1)
atrasos na rede;
2)
latência cliente remoto;
3)
Arquitetura do aplicativo.
Na maioria dos casos o problema é quase
sempre o item 3, não seria de se espantar.
Claro que sem medir, sem ferramentas adequadas
ou um profissional com amplo domínio do Tomcat e conhecedor da arquitetura do
produto, ficamos meio perdidos sem
elementos que apontam onde está exatamente o gargalo(s).
Por isso, a primeira coisa a fazer seria lançarmos
mão de ferramentas de coleta de dados de tráfico, requisições HTTP, conexões
JDBC, etc. Dai podemos apontar com segurança onde está o foco do problema. Se confirmado
que a falha maior seja da arquitetura do sistema, então, podemos determinar
de que tipo exatamente se trata esse problema.
Dessa forma, uma opção seria otimizar o Tomcat
direcionado de tal forma que mesmo falhas ou consumo excessivo da aplicação não
seja capaz de comprometer o servidor. Em último caso, se não tiver outro
caminho, remodelar os gargalos da aplicação junto da equipe de desenvolvimento.
Aqui uma noção dos tipos de teste:
Uma boa sugestão para
coletar métricas no Tomcat é o Apache Jmeter. Mais detalhes:
Não sou especialista Jmeter, no entanto com
alguma leitura da documentação e montando laboratórios, pude notar que dá
para chegar à alguns resultados com certa facilidade.
Utilizando o Jmeter
Basta fazer o download do zip da última
versão:
Descompactar, em seguida ir na pasta bin (no
meu exemplo ficou C:\apache-jmeter-3.0\bin) e então executar o arquivo ApacheJMeter.jar.
Para criar um teste realmente funcional básico,
basta uma rápida leitura da documentação aqui:
No caso de páginas que precisa passar parâmetro e efetuar login, deve olhar principalmente a
seção “5.6 Logging in to a
web-site” que é onde mostra a forma de configurarmos um usuário e senha em
que o Jmeter irá fazer requisições e logar
Outra forma bem
interessante, a qual sugiro, para montar um bom scritp de testes é gravar a navegação feita na aplicação alvo através do browser no Jmeter.
Configurando
o Jmeter pra gravar navegação do Browser e executar posteriormente testes de carga e coleta de
métricas
No link abaixo um excelente manual. Basta seguir esse artigo para
criar a configuração necessária.
Após criar as etapas conforme listado no artigo acima, na opção "Servidor HTTP Proxy" quando
clicar no botão Iniciar ou Start
O próprio Jmeter gera um certificado a ser utilizado no
Browser estabelecendo assim relação de confiança nos testes entre a Jmeter, JVM, Windows e o Browser
Importando o certificado no Chrome:
Conforme dito na mensagem de geração do certificado, o mesmo
foi salvo na pasta bin do Jmeter
Pronto. Agora ao navegar, no site configurado em “Nome do
Servidor ou IP”, será capturado a navegação conforme a opção “Padrões de URL a
Serem Incluídos”
E agora, o que fazer com os dados coletados?
Veja esses artigos selecionados que vão dar uma boa resposta a nossa indagação:
http://sumoners.github.io/2015/10/07/performance-da-sua-aplicacao-jmeter
http://www.bugbang.com.br/destilando-jmeter-i-introducao-e-conceitos
Como monitorar o servidor com JMeter
Aqui um ótimo artigo sobre o assunto. Vale a pena conferir:
www.blazemeter.com/blog/how-monitor-your-server-health-performance-during-jmeter-load-test
Fontes:
http://jmeter.apache.org
http://pt.slideshare.net/joao.galdino/abrindo-a-caixa-de-ferramentas-atirando-pedras-com-jmeterhttp://jmeter.apache.org
Nenhum comentário:
Postar um comentário