Uma Introdução ao WebSphere Application Server Performance Tuning Toolkit

Descubra gargalos de desempenho na sua infraestrutura de servidor de aplicativos usando este kit de ferramentas fácil de usar

WebSphere® Application Server é um dos principais componentes de uma arquitetura empresarial, e gargalos de desempenho podem afetar diversos aplicativos. WebSphere Application Server Performance Tuning Toolkit é uma ferramenta fácil de usar, que pode ser usada para descobrir problemas no WebSphere Application Server. Esse kit de ferramentas é muito útil para garantir que você está aproveitando a infraestrutura ao máximo.

Wang Yu, Software Engineer, IBM China

author photoWang Yu (Edward) é engenheiro de software no IBM China Software Development Lab em Pequim. É membro da equipe de WebSphere Application Server SVT. Também tem interesse em análise e ajuste de desempenho, diagnóstico de problemas e alta disponibilidade do WebSphere Application Server.



Tao Zhang, Software Engineer, IBM China

author photoZhang Tao (Jordan) passou a fazer parte da IBM em 2009. Ele trabalha na equipe WebSphere Application Server SVT do IBM China Software Development Lab em Pequim. Tem interesse em migração do WebSphere, gerenciamento inteligente e alta disponibilidade.



26/Nov/2012

Visão geral

Saiba o que esperar desse tutorial e como tirar o máximo proveito dele.

Sobre este tutorial

O ajuste de desempenho é essencial em qualquer empresa, pois ajuda a garantir o retorno máximo sobre o investimento em TI. Além de ajudar os usuários finais a obter o melhor tempo de resposta, também ajuda a determinar a carga máxima que o aplicativo pode suportar com segurança.

WebSphere Application Server é um componente essencial de infraestruturas de aplicativos JEE corporativos, e o ajuste desse middleware é essencial para obter o melhor desempenho.

Este tutorial apresenta o WebSphere Application Server Performance Tuning Toolkit (doravante chamado de PTT) e demonstra como usá-lo para descobrir gargalos de desempenho e ajustar a infraestrutura do WebSphere Application Server. Supomos que você tenha conhecimento básico de WebSphere Application Server e testes de desempenho.

Antes de entrar no ajuste de desempenho do WebSphere Application Server, uma pequena digressão, para não perdermos o contexto. O ajuste de middleware é apenas um aspecto e deve ser visto de forma holística em conjunto com o planejamento de capacidade e ajuste de toda a pilha de software (sistema operacional, aplicativo, banco de dados, cliente/navegador etc). Essa visão de ponta a ponta para garantir a capacidade ótima é a engenharia de desempenho, um tópico para um outro dia.

 

Uma Introdução ao Performance Tuning Toolkit

WebSphere Application Server Performance Tuning Toolkit (PTT) é um kit de ferramentas inteligente, baseado em Eclipse, criado para ajudar a ajustar o desempenho do WebSphere Application Server. PTT coleta dados de desempenho do WebSphere Application Server Performance Monitoring Infrastructure (PMI) e exibe esses dados usando painéis de monitoramento configuráveis. PTT também fornece ferramentas para facilitar a determinação de problemas.

PTT possui os principais componentes a seguir:

  • Interface com o usuário, criada usando a estrutura Eclipse Rich Client Platform.
  • Data Collector, que usa as APIs JMX do WebSphere Application Server para coletar dados de PMI do servidor.
  • Event Processor, que processa os dados de PMI. O processador de eventos usa o mecanismo de regras Drools para gerar alertas no painel de monitoramento. Esse mecanismo também permite que os usuários criem regras para criar seus próprios alertas customizados.
  • Persistence Manager, para persistir os dados no banco de dados. O Event Processor usa Persistence Manager para transformar e salvar os eventos de PMI no banco de dados.

A Figura 1 mostra uma visão geral dos diferentes componentes do PTT.

Figura 1. Visão geral técnica do WebSphere Application Server Performance Tuning Toolkit

PTT oferece as seguintes funcionalidades:

  • Encontre erros assim que ocorrerem:
    • Monitora o servidor para detectar vários tipos de problemas, como erros de servlet, retrocesso de transação, tempo limite de transação, tempo limite de conexão JDBC, erros de conexão JCA, interrupção de encadeamento e falha em solicitações de proxy.
  • Encontre problemas em potencial:
    • Mostra status detalhado do sistema através de painéis.
    • Detecta os sintomas anormais de acordo com regras predefinidas
  • Acelera o processo de ajuste de desempenho:
    • Ajusta todos os servidores em uma visualização centralizada.
    • Executa scripts de ajuste no ambiente de trabalho.
  • Facilita a determinação de problemas ao fornecer ferramentas para:
    • Gerar dumps de encadeamento e de heap
    • Permitir rastreamento do tempo de execução
    • Extrair conteúdo do conjunto de conexões
  • Processamento de dados e relatório:
    • Fornece relatório.
    • Oferece suporte para análise online e offline de dados de PMI

Vantagens de PTT sobre outras ferramentas

PTT tem algumas vantagens:

  • É fácil de instalar e usar. Basta descompactar o arquivo zip transferido por download e fazer uma pequena configuração.
  • Tem uma área de cobertura pequena (cerca de 250 M), e não são necessárias outras instalações.
  • Não é invasivo. Não é necessário alterar o aplicativo ou instalar agentes nos servidores de aplicativos, pois o kit de ferramentas pode ser executado remotamente.
  • Tem um impacto mínimo no desempenho do WebSphere Application Server. (Consulte Performance degradation metrics when using PMI)
  • É fácil de usar e tem uma interface com o usuário customizável.
  • Permite monitoramento em tempo real de um servidor único ou de uma célula inteira a partir de um único local. Os gráficos de desempenho do servidor também podem ser salvos para análise posterior.
  • Também tem processamento de eventos baseado em regras, que permitem aos usuários customizar o mecanismo de alerta de acordo com os requisitos do projeto.
  • Por último, mas não menos importante: é grátis.

PTT e o Tivoli Performance Viewer integrado

WebSphere Application Server possui um Tivoli Performance Viewer integrado, que também usa dados de PMI para monitorar o funcionamento geral do WebSphere Application Server a partir do console administrativo. PTT amplia os recursos do Tivoli Performance Viewer ao:

  • fornecer painéis de fácil monitoramento, o que torna mais fácil entender o desempenho do WebSphere Application Server.
  • gerar alertas que permitem detecção mais fácil de problemas de desempenho. Esses alertas podem até ser customizados.
  • fornecer recursos como geração de dumps e informações de rastreio, que auxiliam na determinação avançada de problemas.

O que PTT não é

Não é uma ferramenta de gerenciamento de sistemas e não deve ser usada para monitoramento de longo prazo. A ferramenta destina-se a monitoramento de curto prazo do WebSphere Application Server durante testes de desempenho. O conjunto Tivoli de produtos IBM é adequado para monitoramento de sistema. Consulte Recursos.


Uso prático do PTT

A melhor maneira de aprender sobre uma ferramenta é usá-la. Este tutorial reproduz alguns cenários de gargalos de desempenho e mostra como esses problemas podem ser resolvidos usando PTT. PTT pode monitorar todo o cluster do WebSphere Application Server, mas, para simplificar, este tutorial usa uma única instância de servidor. Como parte do tutorial, vamos instalar um aplicativo de desempenho de amostra padrão nesse WebSphere Application Server e adicionar um gargalo de desempenho a ele. Em seguida, usará o PTT em conjunto com outras ferramentas para investigar o problema.

Software necessário para este artigo

  • PTT é a ferramenta primária para detectar problemas de desempenho. Faça o download e instale o kit de ferramentas.
  • DayTrader Performance Application é um aplicativo da web de amostra de ponta a ponta, que usa como modelo o comércio de ações online. DayTrader usa componentes JEE, como servlets, arquivos JSP, enterprise beans, beans acionados por mensagens (MDBs) e Java Database Connectivity (JDBC) para fornecer um conjunto de serviços ao usuário, como login/logout, preços de ações, compra, venda, detalhes da conta etc. em HTTP e protocolos de serviço da web. DayTrader oferece parâmetros configuráveis que são usados para induzir diferentes gargalos de desempenho. Para saber mais sobre o aplicativo de DayTrader Performance, consulte Recursos. Scripts para instalar o aplicativo DayTrader em uma única instância de servidor estão disponíveis na seção Downloads.
  • A ferramenta de teste de carga Apache JMeter foi criada para realizar teste de carga do comportamento funcional e medir o desempenho. É usada para simular solicitações no aplicativo DayTrader. A seção Recursos contém o link para a imagem de instalação.
  • A Visualização Técnica IBM Support Assistant 5 é usada para auxiliar na determinação de problemas. Contém um gerenciador de caso que ajuda a coletar os dados para a investigação de determinação de problemas e um conjunto de ferramentas que ajuda a diagnosticar problemas. Consulte Recursos para informações sobre como obter o IBM Support Assistant.

Configuração

  1. Para instalar o PTT, descompacte o archive de instalação. Em seguida, execute o executável. O ambiente de trabalho mostrado na Figura 2 é exibido.
Figura 2. Área de Trabalho do Performance Tuning Toolkit
  1. Para configurar o PTT, é necessário incluir um host. Clique no botão Add a new Host na barra de ferramentas da área de janela Host. Na janela New Host (veja a Figura 3), especifique o endereço IP e porta SOAP do gerenciador de implementação (no caso de instalação em ND no WebSphere Application Server) ou do servidor (no caso de ambiente de servidor único). Se a segurança estiver ativada, é necessário também especificar o nome de usuário e senha.
Figura 3. Incluindo um novo host
  1. Para instalar o aplicativo DayTrader, selecione Help -> Case Study na barra de menus do ambiente de trabalho do PTT para importar o aplicativo de amostra e arquivos de script para a visualização Scripts. Esses scripts de amostra são para um ambiente em cluster. Os scripts adicionais necessários para a configuração de servidor único estão na seção de download deste tutorial. Copie os scripts do archive transferido por download e coloque na pasta <caminho de instalação do PTT>/ workspace/Scripts/sample.
  2. Abra settings_SingleServer.py, na pasta Sample, e altere o nome do nó para o nó do seu ambiente. Também é necessário inserir os dados de segurança caso a segurança do WebSphere Application Server seja ativada. Selecione a visualização de host, clique com o botão direito em installDaytrader_singleServer.py, na pasta sample da visualização scripts, e selecione Run Scripts no menu de contexto para executar o script com relação ao servidor. O script realiza toda a configuração necessária a instala o aplicativo DayTrader no servidor especificado.

O Log Console (veja a Figura 4) no PTT mostra que o aplicativo foi instalado com êxito.

Figura 4. Log Console mostrando o log de implementação do DayTrader

Certifique-se de que a coleta de lixo detalhada esteja ativada no servidor. A coleta de lixo pode ser ativada no console de administração do servidor de aplicativos. Escolha o servidor, clique em Process definition e clique em Java Virtual Machine como mostra a Figura 5.

Figura 5. Ativando a coleta de lixo no servidor

Reinicie o servidor de aplicativos e, para verificar a instalação, abra o aplicativo DayTrader em

http://<host>:default_port/daytrader/scenario (veja a Figura 6).

Figura 6. Tela Inicial do DayTrader

Use a ferramenta JMeter para simular solicitações para o aplicativo DayTrader. Inicie o JMeter e abra o arquivo daytrader.jmx na pasta sample da área de janela Scripts. Altere os valores das variáveis hostname e portnumber de acordo com o ambiente.

Figura 7. Tela de configuração do JMeter

Para verificar a configuração, execute a ferramenta JMeter por dez minutos e verifique se a ferramenta consegue operar com o aplicativo. Isso também garante que o ambiente está configurado corretamente.

Para iniciar o IBM Support Assistant, inicie o servidor com ISA5/start_isa.bat. Pode ser acessado pela URL http://localhost:port/isa5/. O número da porta é exibido como saída quando o arquivo em lote start_isa.bat é executado.

Isso conclui a configuração necessária para este tutorial.

O ambiente de trabalho do PTT

Agora que todo o software necessário foi instalado e configurado, vamos examinar melhor a ferramenta PTT. A interface com o usuário consiste em visualizações que apresentam informações de maneira concisa e lógica. A Figura 8 abaixo mostra uma tela de visão geral de amostra.

Figura 8. Visão Geral do Ambiente de Trabalho do PTT

Observe que ela apresenta informações resumidas sobre o servidor. Para visualizar o painel, clique no botão Open Monitor Page na tela de visão geral.

Figura 9. O Painel do PTT

Cenários de problema de desempenho

PTT pode ser usado para solucionar vários problemas de desempenho, incluindo aqueles que resultam de:

  • bloqueio de sincronização
  • conflito
  • uso alto de CPU
  • fuga de conexão
  • fuga de memória

Problemas de bloqueio de sincronização

Nesse cenário, encadeamentos são bloqueados devido à sincronização. O aplicativo chama continuamente um método sincronizado estático no qual o encadeamento é suspenso por vários segundos.


Amostras de alterações de código no aplicativo DayTrader para induzir esse cenário são mostradas abaixo:

                    // For Synchronization Blocking
                    if(TradeConfig.isThreadHang()){
                      syncMethod();
                    }
                    
                    public static synchronized void syncMethod(){
                      try {
                        Thread.sleep(TradeConfig.getHangTime());
                      } catch (InterruptedException e) {
                         e.printStackTrace();
                      }
                    }

Para simular esse problema, certifique-se de que o stress do JMeter esteja sendo executado e que o PTT esteja monitorando o servidor. Abra a guia Server da página do DayTrader (http://nome do host:porta/daytrader). As opções de reprodução de erro são mostradas na Figura 10. Para acionar os problemas de bloqueio de sincronização, selecione a caixa de seleção Synchronization Blocking na guia Server e atualize a configuração de tempo de execução.

Figura 10. Tela de configuração do DayTrader

Em alguns minutos, os problemas mostrados na Figura 11 começam a ocorrer.

Figura 11. Tela de visão geral mostrando problemas

Ao abrir o monitor de painel (Figura 12), é possível ver alertas e a degradação do tempo de resposta do servlet.

Figura 12. Painel de PTT mostrando mais detalhes sobre o problema

Para investigar melhor esse problema, é preciso determinar porque o tempo de resposta do servlet está aumentando. Java permite obter detalhes de processo do tempo de execução sem precisar alternar para o modo de depuração. É possível usar dump de encadeamento, que é basicamente uma captura instantânea da execução dos encadeamentos na Java virtual machine (JVM) em um ponto no tempo, para saber mais sobre o problema. O dump de encadeamento fornece rastreio de pilha dos encadeamentos Java e mostra os métodos e linhas que estão sendo executados nesse momento. Para fazer o dump do encadeamento, clique com o botão direito no servlet na área de janela Topology e selecione Generate Thread Dump (veja a Figura 13).

Figura 13. Gerando Dump de Encadeamento Usando o Ambiente de Trabalho do PTT

O dump de encadeamento é gerado na pasta raiz do perfil do servidor. Esse arquivo pode ser analisado usando a ferramenta Thread and Monitor Dump Analyzer no IBM Support Assistant. Crie um caso no IBM Support Assistant, importe o arquivo do dump e analise usando a ferramenta Thread and Monitor Dump Analyzer (veja a Figura 14). Agora é possível verificar os resultados da análise para restringir melhor o problema. O arquivo javacore.xxxx_jca.html contém o resultado detalhado (Figura 15).

Figura 14. Thread and Monitor Dump Analysis usando IBM Support Assistant

Clique no link do arquivo Java Monitor Dump para obter mais detalhes.

Figura 15. Análise Detalhada do Dump Monitor Usando IBM Support Assistant

Observe que o dump aponta claramente o problema e o código que o está causando.


Conclusão

O ajuste do WebSphere Application Server é essencial para a utilização ótima da infraestrutura de middleware. O kit de ferramentas WebSphere Application Server Performance Tuning pode ser usado facilmente para detectar gargalos de desempenho e ajustar a infraestrutura do WebSphere Application Server. Ele fornece vários recursos fáceis de usar e configuráveis para facilitar a determinação de problemas. Essa parte do tutorial explicou os recursos, vantagens e os vários componentes do PTT, usando a solução para solucionar um problema de desempenho de amostra. A Parte 2 do tutorial mostra como PTT pode ser usado em outros cenários.


Agradecimentos

Os autores gostariam de agradecer a Peng Fei Sui pela revisão deste artigo.


Download

DescriçãoNomeTamanho
Sample Scriptsptt_part1_scripts.zip8 KB

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=973498
ArticleTitle=Uma Introdução ao WebSphere Application Server Performance Tuning Toolkit
publish-date=11262012