SlideShare uma empresa Scribd logo
Tunning do WebSphere Portal Alex Coqueiro Blog: http://portal-ibm.blogspot.com
Agenda Introdução Preparação para os testes Fases do teste Antes do Going-Live Ferramentas de Geração de Carga Estudos de Caso com análise de resultados Parâmetros de Performance
Características do WebSphere Portal para Tunning O WebSphere Portal é uma aplicação Web e portanto muitas das técnicas de tunning são as mesmas que utilizamos em uma aplicação Java no WebSphere Application Server A principal diferença está na organização dos elementos da página, pois o Portal criar mini aplicações denominadas portlets. Um portlet com defeito pode comprometer a página inteira. Um dos benefícios do Portal é funcionar como um ponto de entrada para todas as aplicações da empresa. Desta forma o WebSphere Portal está mais sucetível a variações de performance que outros tipos de aplicações.
Aplicações Ferramentas do Time e-RH Aplicações de Negócio e-Mail & Calendário e-Learning Pessoas Gerência de Conteúdo Mensagens Corporativas Notícias Personalizadas Instant Messaging Localização de Especialistas Abordagem Evolutiva de Funcionalidades
Principio de Pareto O Princípio de Pareto foi criado no Séc. XIX por um economista italiano chamado Alfredo Pareto que, ao analisar a sociedade concluiu que grande parte da riqueza se encontrava nas mãos de um número demasiado reduzido de pessoas.  Após concluir que este princípio estava válido em muitas áreas da vida quotidiana, estabeleceu o designado método de análise de Pareto, também conhecido como dos 20-80% e que significa que um pequeno número de causas (geralmente 20%) é responsável pela maioria dos problemas (geralmente 80%).
Principais Problemas Não haver planejamento para a realização de testes de performance Focar somente em testes funcionais Acreditar que o seu código não tem problemas de performance Achar que o WebSphere Portal irá resolver todos os problemas de performance da aplicação No “desespero” solicitar um documento mágico da IBM para resolver o problema de performance da aplicação Achar que o usuário está sendo exigente e que o tempo de resposta está bom. Não envolver o usuário final nos testes é um erro muito comum. Análise do tipo: Se a aplicação está lenta, favor aumentar a memória ou trocar a máquina. Focar testes de performance somente no WebSphere Portal Ninguem pensa de massa de dados para o teste
Agenda Preparação para os testes Planejamento Determinação dos objetivos de carga e tempo de respostas Descrever os casos de teste Montar o capacity plan
Preparação – Planejamento Qual a duração dos testes de performance ? Inicie o mais rápido possível no seu projeto Alto impacto para correção no final do projeto No geral pode variar de semanas até meses
Preparação – Planejamento Quantas pessoas são requeridas ? Depende principalmente do tamanho do projeto Pode ser de 1 pessoa até uma equipe de testers dedicada Quais os skills requeridos ? Depende das ferramentas de testes e da arquitetura do projeto Algumas ferramentas dependes de skill mais aprofundado para a realização dos testes Quanto custa ? Esta questão depende fundamentalmente da arquitetura, grau de profundidade dos testes e das ferramentas utilizadas Ferramentas comerciais no geral fornecem um detalhamento maior sobre a cobertura dos resultados, enquanto de ferramentas freeware requerem mais passos manuais Hardware e Software adicional pode ser requerido para os testes
Preparação – Objetivos de Carga e Tempo de Resposta Objetivos de carga e tempos de resposta são essenciais para a realização dos testes Defina os objetivos do teste Defina o custo, pessoas envolvidas e as indisponibilidades do sistema Explique o funcionamento do processo de métricas Defina os objetivos de carga no ambiente de produção o mais rápido possível Utilize este números para as cargas iniciais e validação das estimativas do “capacity planning” Defina os critéricos de performance a serem atingidos Pense no peak loading antes Qual o volume de crescimento do acesso ao seu portal ? Há campanhas de marketing planejadas ?
Preparação – Objetivos de Carga Exemplos de Carga baseadas em Transação Pages/hour:   Taxa de número de páginas por hora UC/hour:   Taxa de uso do Caso de Uso por hora Http requests/hour:  HTTP requests por hora incluindo iFrames ou embeded Searches/hour:  Buscas por hora Exemplos de Carga baseado no usuário User visits/hour:  Taxa de visita de usuário Logins/hour:   Taxa de Login Active Users/hour:  Usuários ativos Obtenção destes números (mesmo que estimados) Tente obter do site existente Converse com usuários, desenvolvimento, gestores, etc
Preparação – Objetivos de Tempo de Resposta Tempo de Resposta é um objetivo subjetivo Percepção do cliente é importante Defina objetivos por atividade de usuário Home page, login, funcionalidade, etc. Tempo de resposta médio é importante, foque nos percentuais de melhoria Transações com diferentes tempos de resposta é o que normalmente acontece Estudo objetivos maleáveis em função de condições de acesso diferentes como: Failover, dial-up, acesso acima do normal Compare seus objetivos com dados históricos
Preparação – Planejamento para Peak Load Sempre desenvolva cenários de teste para horários de pico .  Entenda a diferença no tempo de resposta entre o horário de pico e a média dos requestes Normalmente o fator varia de 3 a 5 vezes
Preparação – Definição de Cenário em Caso de Teste  Use cases descreve como os usuários utilizam o sistema Identificar paginas visitadas and atividades chaves como (busca, compra, etc.) Exemplo: Home page > Specials page > View item > Add to Cart > ... Escrever  scripts de testes  que simulem este comportamento Separe cenários de teste isolados para testar elementos chave da arquitetura de cenários de teste baseado em requerimento de usuário.
Preparação – Escrever Casos de Teste Escreva cada atividade do usuário com um script Montagem do script Script deve usar o sistema na proporção correta. Não exagere ou seja muito conservador na smulação do usuário. Tipicamente, uma boa cobertura de projeto é realizada com 10 a 20 scripts de teste Use dados representativos Forneça um conjunto de dados que permita reuso e evite deadlock ou lock de conteúdo Cuidado com a massa de testes para não enviar emails aos clientes sem querer. Você tambem é responsável pela massa de dados No planejamento leve em consideração o tempo para preparar e revisar a massa de dados Testes reais requerem dados reais
Preparação – Geração de Dados de Teste Testes reais requerem dados reais Logins de usuário Cuidado com o reuso de logins de usuário Cuidado com as informações em cache Volume no banco de dados Sempre que possível tenha uma volumetria de banco parecida com a esperada em produção
Preparação – Capacity Plan Prepare o capacity plan Documento os números obtidos no levantamento de hardware Defina tempos de resposta  Tenha uma porjeção de tempo futuro Sempre que possível contate o Techline para montagem do capacity planning
Preparação – Capacity Plan Backend e Infraestrutura Certifique-se que o Backend tem recursos suficientes para a realização dos testes Cuidado com o dimensionamento de banda de rede ou latência de rede
Agenda Fases de Teste Teste com um único usuário Teste com um sistema Teste Incremental Teste de Estabilidade
4 Fases de Teste Teste com um usuário único Ajuda na análise do código Analisa footprint da aplicação Ajuda na análise da arquitetura Teste com um sistema Inicie com casos de teste mais simples e migre aos poucos para cenários mais complexos Identifique e remova gargalos antes de avançar para cenários mais complexos Teste Incremental Crescer com a carga  Identifique e remova gargalos do ambiente como um todo Teste de Estabilidade Long runs Teste Failover e high-availability
Fase 1 Deve ser integrado como parte do processo de desenvolvimento Pode ser realizado pelos desenvolvedores Integrado aos testes de caixa branca Documentar alterações no ambiente de portal como uso de portlet cache Oportunidade para rever o código da aplicação
Fase 1 Ferramenta Análise de código e Degub Uso de Rational Application Developer, WebSphere Portlet Factory, Jtest, etc. Criar testes simples de carga Um usuário Tempo de duração dos teste: 10min a 1h
Fase 2 Ponto de Teste
Fase 2 Introduz conceito de concorrência Processo Interativo Baseline, tune, teste, analise de dados Adicione cenários de teste mais complexos Cuidados com a  regressão de performance Ferramentas nesta fase Ferramentas de monitoração como TPV, ITCAM,  vmstat , DB2 snapshots, etc.
Fase 2 Baseline Verifique números iniciais Teste Verifique a duração Observe  todos os sistemas e logs Utilização de CPU Utilização de Disco (I/O) e rede O trabalho do Garbage Collection Antes de reexecutar os testes Registre os resultados Arrume os problemas primeiro
Fase 2 – Coleta de Dados Coleta de Resultados Não inclua o tempo de ramp-up/ramp-down Repeat tests Reexecute scripts algumas vezes para perceber  comportamento Execução Execute o script de 30-45 minutes durante a  fase tuning Evite testes em dias de backups de DB, e  manutenção de ambiente
Fase 2 – Critério de Encerramento Sistema apresenta um comportamento estável Comportamento estável significa comportamento repetitivo Não há erros no log Gargalos foram removidos CPU do WebSphere Portal está sendo bem utilizada Objetivos de performance atingidos Parâmetros de Tuning (relevantes) foram identificados Planos de ação (Portal, Database, SO, rede) foram definidos
Fase 3
Fase 3 Testar incremental com ambiente integrado Verificar se tempo de resposta se mantem estável Ajustar configuração de load balance Entender impacto de ambientes externos como firewall no projeto Testes considerando cenários de usuários locais e remotos Podemos usar as mesmas ferramentas da fase 2
Fase 3 Processo de Teste similar a fase 2 Dimensione ferramentas para simulação de usuários para evitar gargalos na ponta Esta fase normalmente apresenta recomendações de Tunning para o usuário
Fase 4 – Testes de Estabilidade Scripts executando durante um longo tempo Cubra diferentes horas do dia (preferenciamente 24h) Deixe o script rodando em finais de semana Teste de Failover Simule falhas de hardware e software para estudar comportamento do sistema e ver se action plan está sendo seguido Validar tempo de resposta em situações de failover
Fase 4 – Testes em condições normais
Fase 4 – Testes em condições de falha
Fase 4 – Critérios de encerramento Resultados desta atividade Logs estão limpos Tempo de resposta estável Utilização de recursos contantes Fragmentação de JVM baixa Failover Requestes não foram perdidos e sessões do usuário foram mantidas Portal tem condições de manter disponibilidade mesmo em caso de falhas
Agenda Antes do Going-Live
Antes do Going-Live Aplique os parâmetros de tuning em produção Parâmetros de J2EE Parâmetros para os portlets Configurações de Sistema Operacional, WebServer Configuração no backend Garanta a compatibilidade entre as versões do ambiente de homologação e produção
Antes do Going Live – Rollout Considere impacto em diferentes estratégias Rollout x Big bang Rollout Portlets / grupos de usuários são adicionados em ondas Reduz o risco de problemas iniciais de performance Considere as dificuldades de alterar o ambiente após o inicio das operações no site Big bang Todos os usuários são movidos ao mesmo tempo para o Websphere Portal Importante o sistema funcionar muito bem nos primeiros dias Mantenha uma estratégia de switch back para a versão antiga do portal em caso de contingência
Ferramentas de Geração de Carga Comerciais IBM Rational Performance Tester Mercury LoadRunner Ferramentas Open Source OpenSTA JMeter Outras Ferramentas Grinder TestMaker
IBM Rational Performance Tester Baseado no Eclipse Rica API para a formação de cenários e scripts de execução bem flexíveis Relatório bem completo
Mercury LoadRunner Pode ser encontrada em alguns clientes Compatível para testes com o WebSphere Portal
JMeter Pode ser utilizada para testar banco de dados, ftp, legados, etc Cobertura de informações bem abrangente http://jakarta.apache.org/jmeter Ferramenta baseada em Java
Open Systems Testing Architecture (OpenSTA) Boa capacidade gráfica de apresentação de dados mas apresenta limitações na configuração de cenários Pode exportar dados diretamente para planilhas eletrônicas http://www.opensta.org Ferramenta baseada em Windows
Pense nos números como humanos Testes de laboratório Usuário Virtual (vuser) Testes reais de usuário Usuário Real 14 pages views  em 6 segundos logou 51 vezes em 5 minutos Resultado de:  14 pages views em 5 minutos logou 1 vez em 5 minutos Resultado de: 2.3 pages por segundo 0.05 pages por segundo Se o Portal foi dimensionado para 400 páginas por segundo 170 usuários suportados 8000 usuários reais suportados Carga gerada pelas ferramentas de teste Carga gerado por humanos
Exemplo de Captação de Dados A interpretação dos números é um elemento muito importante na análise dos dados. Abaixo vamos analisar os resultados.
Comparativo entre indices de performance (tempo em milisegundos x atividade de tunning)
Parâmetros de Tunning Inicie Tunning pelos adequando os parâmetros de WebSphere Application Server Parâmetros de ambiente (ulimit) Parâmetros de rede (tcp/ip) JVM e WebContainer Estude o WebSphere Portal Tunning Guide Adeque os parâmetros de banco de dados Adeque os parâmetros específicos de WebSphere Portal.
Parâmetros de Portal JVM de 32 bits x 64 bits Em computadores de 64 bits podemos ter um endereçamento de memória superior a 2.5GB (limite máximo de 32bits de 4GB) Entretanto cuidado por objetos que contém referências múltiplas de memória apresentam tamanho significativamento maior em ambientes de 64bits. Analise o seu portal e caso ele tenha um baixo uso de memória, endereçamento de 32 bits possuem uma melhor performance. Hyper-Threading Os testes de laboratório da IBM constataram que o uso de Hyper Threading (HT) em servidores Intel ou Simultaneous Multithreading (SMT) em power series influemciam positivamente na performance do WebSphere Portal. Instalação do Portal O portal possui um parâmetro de instalação denominado “development mode”. Este parâmetro é indicado para ambientes de desenvolvimento, mas não apresenta otimizações de performance. Portanto ele nunca deve ser usado em produção.
Parâmetros de Portal Heap management: O parâmetro de heap size é diretamente proporcional ao montante de memória utilizada pela sua aplicação. Necessário um balanceamento entre o heapsize e a memória fisica da aplicação Exemplo: 2GB de RAM em um máquina Windows 32bits um valor máximo para heap size é 1408MB. A mesma configuração em AIX seria mais adequado com o 1792MB e em Linux com kernel superior a 2.6 o valor seria 2048MB.  Igualar o heapsize minimum e maximium evita a fragmentação da memória. A implicação disto é muitos portlets usando pouca memória podem apresentar degradação do sistema. Um número adequado para o exemplo acima nesta situação seria 320GB. Web Containers Um bom parâmetro inicial é maxthreads=50 (WebSphere Administrative Console: Servers -> Application Servers -> WebSphere Portal-> Additional Properties: Thread Pools-> Web Container -> Thread Pool - Minimum size threads - Maximum size threads)
Parâmetros de Portal Portlet Caching e Cache Manager Service Caches portlets são realizados  no web container “ Aggregator”engine constrói as páginas a partir dos portlets As informações mais antigas do cache são descartadas quando não mais mais espaço para geração do cache. Portlet caching trabalha melhor com portlets mais maiores e mais complexos
Parâmetros em banco de Dados Use Tivoli Performance Viewer para refinar os parâmetros Prepared Statement Cache é um parâmetro que normalmente precisa ser adequado Connection Pool é outro parâmetro importante a ser observado pelo TPV Reorganize os databases do Portal após a realização de uma grande carga de testes  (db2 reorgchk update statistics on table all) Não utilize Cloudpsace ou Derby em ambiente de produção. Utilize sistemas de banco de dados que privilegiem a performance como por exemplo DB2.
LDAP Verifique se o LDAP tem capacidade suficiente para suportar a nova carga gerada pelo WebSphere Portal Filtros de LDAP tem um impacto bastante grande na performance do Portal Na configuração do Portal, há alguns filtros pré-configurados. Analise junto com o especialista de LDAP para ver se estes filtros estão de acordo com o que foi configurado no ambiente
Web Server (Parâmetros a serem analisados)
Portlet Development No desenvolvimento com Portal, seus componentes (portlets) são pedaços da sua página.  Mantenha a menor quantidade possível de dados na sessão. Seus portlets não são os únicos na página Cuidado com os logs. Caso esteja usando o logging API, verifique se o mesmo está habilitado.  “ if(getPortletLog().isDebugEnabled())” antes de escrever no log. Cuidado com a instrução try, catch, finnaly no Java no fechamento das conexões. Muito comum os desenvolvedores esquecerem de fechar as conexões em situações de exceção.
Web 2.0 O Websphere Portal possui um tema que utiliza os potenciais de implementações AJAX.  Cuidado especial nos testes com este tema. Para alterar os parâmetros de cache que são utilizados por este tema é necessário alterar o arquivo  NavigatorService.properties . Os parâmetro que geram impacto são remote.cache.expiration.feed.cm, remote.cache.expiration.feed.nm, remote.cache.expiration.feed.lm e remote.cache.expiration.feed.pm.
Web Content management No geral os mesmos parâmetros utilizados pelo WebSphere Portal são aplicáveis ao WCM. As maiores diferenças estão no uso de cache, thread de Web Container e conexões de data source do JCR. Normalmente os servidores de Authoring e Publishing tem valores de tunning diferentes. Importante lembrar que o uso de Authoring e Publishing na mesma máquina tem impacto direto na performance do Portal
Resumo  Garanta um planejamento do seu teste o mais rápido possível As melhorias de performance não dependem única e exclusivamente do  servidor de deployment Duas semanas antes de encerrar o projeto não é o ideal para iniciar os testes de performance e tunning Entenda que quanto mais refinado o teste, maior o tempo e recursos necessários. Estabeleça um plano de testes realista. A preocupação com performance deve extrapolar as fronteiras do administrador do Portal Performance é um trabalho que aplica-se a todas as camadas Web, Network, Portal, DB e sistemas legados. Envolva o cliente no processo de testes para eles entenderem os gargalos
Maiores Informações  WebSphere Portal Information Center: http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/index.jsp The Tuning section of the WebSphere Application Server Information Center located at: http://www.ibm.com/software/webservers/appserv/was/library/ WebSphere Portal Benchmark Results: Contact WPLC Performance team. DB2 Information Center: http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp The ROLTP factors for IBM pSeries Servers™ can be found at http://www.ibm.com/servers/eserver/pseries/hardware/system_perf.html WebSphere Application Server Performance information: http://www.ibm.com/software/webservers/appserv/was/performance.html Recommended reading list: J2EE and WebSphere Application Server http://www.ibm.com/developerworks/websphere/library/techarticles/0305_issw/recommendedreading.html WebSphere Application Server Development Best Practices for Performance and Scalability: http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf Diagnosing Performance Problems for WebSphere Portal 5.1 (though this document was written for WebSphere Portal 5.1, the lessons apply to WebSphere Portal 6.1 as well): http://www.ibm.com/support/docview.wss?uid=swg27007059
Questions
Obrigado Alex Coqueiro [email_address] http://portal-ibm.blogspot.com

Mais conteúdo relacionado

Mais procurados

Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Leandro Ugioni
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
crc1404
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
Vanilton Pinheiro
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
Sandy Maciel
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
Camilo Ribeiro
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de Serviços
RationalBrasil
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
Jeremias Araujo
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
Fabrício Campos
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
Alan Carlos
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
Álvaro Farias Pinheiro
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
Sérgio Souza Costa
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
João Lourenço
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
Camilo Almendra
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Alan Carlos
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Priscila Coelho S. Blauth
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
DevInPF
 
Palestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGSPalestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGS
Diraci Junior Trindade da Silva
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
Camilo Ribeiro
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
Camilo Ribeiro
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
Kamilla Queiroz Xavier
 

Mais procurados (20)

Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de Serviços
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test Manager
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Palestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGSPalestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGS
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 

Semelhante a Webcast WebSphere Portal Performance

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
GUTS-RS
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
Fabrício Campos
 
Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf e
Alan Correa Morais
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
GUTS-RS
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
Rodolfo Roim
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
Leonardo Molinari
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
Felipe Bugov
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
MarcosMaozinha
 
Teste de software
Teste de software Teste de software
Teste de software
Allan Almeida de Araújo
 
Teste de software
Teste de softwareTeste de software
Teste de software
Rodrigo Cardoso Alves Fonte
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
Alini Rebonatto
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
Nuno Baptista Rodrigues
 
apresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdfapresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdf
Raphael Mantilha
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
rzauza
 
Tees Final
Tees FinalTees Final
Tees Final
Marcus Oliveira
 
Metralhando sua API
 Metralhando sua API Metralhando sua API
Metralhando sua API
minastestingconference
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
abacrazy
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
Joyce Bastos
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
Adriano Bertucci
 

Semelhante a Webcast WebSphere Portal Performance (20)

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf e
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Teste de software
Teste de software Teste de software
Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
apresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdfapresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdf
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Tees Final
Tees FinalTees Final
Tees Final
 
Metralhando sua API
 Metralhando sua API Metralhando sua API
Metralhando sua API
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 

Mais de Alex Barbosa Coqueiro

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
 
Generative Artificial Intelligence for Macro-Fiscal Risks.pdf
Generative Artificial Intelligencefor Macro-Fiscal Risks.pdfGenerative Artificial Intelligencefor Macro-Fiscal Risks.pdf
Generative Artificial Intelligence for Macro-Fiscal Risks.pdf
Alex Barbosa Coqueiro
 
Unlocking the Power of Quantum Computing dist.pdf
Unlocking the Power of Quantum Computing dist.pdfUnlocking the Power of Quantum Computing dist.pdf
Unlocking the Power of Quantum Computing dist.pdf
Alex Barbosa Coqueiro
 
Building Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to HeroBuilding Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to Hero
Alex Barbosa Coqueiro
 
Building Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerBuilding Your Robot using AWS Robomaker
Building Your Robot using AWS Robomaker
Alex Barbosa Coqueiro
 
Desafios da transição de estado em um mundo serverless
Desafios da transição de estado em um mundo serverlessDesafios da transição de estado em um mundo serverless
Desafios da transição de estado em um mundo serverless
Alex Barbosa Coqueiro
 
Reinforcement Learning with Sagemaker, DeepRacer and Robomaker
Reinforcement Learning with Sagemaker, DeepRacer and RobomakerReinforcement Learning with Sagemaker, DeepRacer and Robomaker
Reinforcement Learning with Sagemaker, DeepRacer and Robomaker
Alex Barbosa Coqueiro
 
Webinar de Dados Abertos na AWS
Webinar de Dados Abertos na AWSWebinar de Dados Abertos na AWS
Webinar de Dados Abertos na AWS
Alex Barbosa Coqueiro
 
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
Alex Barbosa Coqueiro
 
Deploying Bigdata from Zero to Million of records in Amazon Web Services
Deploying Bigdata from Zero to Million of records in Amazon Web ServicesDeploying Bigdata from Zero to Million of records in Amazon Web Services
Deploying Bigdata from Zero to Million of records in Amazon Web Services
Alex Barbosa Coqueiro
 
HPC in AWS - Technical Workshop
HPC in AWS - Technical WorkshopHPC in AWS - Technical Workshop
HPC in AWS - Technical Workshop
Alex Barbosa Coqueiro
 
Migração do seu website para a AWS
Migração do seu website para a AWSMigração do seu website para a AWS
Migração do seu website para a AWS
Alex Barbosa Coqueiro
 
Seminario de Cloud Computing na UFRRJ
Seminario de Cloud Computing na UFRRJSeminario de Cloud Computing na UFRRJ
Seminario de Cloud Computing na UFRRJ
Alex Barbosa Coqueiro
 
IBM Mobile Platform: Desenvolvimento de Aplicações Mobile
IBM Mobile Platform: Desenvolvimento de Aplicações MobileIBM Mobile Platform: Desenvolvimento de Aplicações Mobile
IBM Mobile Platform: Desenvolvimento de Aplicações Mobile
Alex Barbosa Coqueiro
 
Just java 2011
Just java   2011Just java   2011
Just java 2011
Alex Barbosa Coqueiro
 

Mais de Alex Barbosa Coqueiro (15)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Generative Artificial Intelligence for Macro-Fiscal Risks.pdf
Generative Artificial Intelligencefor Macro-Fiscal Risks.pdfGenerative Artificial Intelligencefor Macro-Fiscal Risks.pdf
Generative Artificial Intelligence for Macro-Fiscal Risks.pdf
 
Unlocking the Power of Quantum Computing dist.pdf
Unlocking the Power of Quantum Computing dist.pdfUnlocking the Power of Quantum Computing dist.pdf
Unlocking the Power of Quantum Computing dist.pdf
 
Building Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to HeroBuilding Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to Hero
 
Building Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerBuilding Your Robot using AWS Robomaker
Building Your Robot using AWS Robomaker
 
Desafios da transição de estado em um mundo serverless
Desafios da transição de estado em um mundo serverlessDesafios da transição de estado em um mundo serverless
Desafios da transição de estado em um mundo serverless
 
Reinforcement Learning with Sagemaker, DeepRacer and Robomaker
Reinforcement Learning with Sagemaker, DeepRacer and RobomakerReinforcement Learning with Sagemaker, DeepRacer and Robomaker
Reinforcement Learning with Sagemaker, DeepRacer and Robomaker
 
Webinar de Dados Abertos na AWS
Webinar de Dados Abertos na AWSWebinar de Dados Abertos na AWS
Webinar de Dados Abertos na AWS
 
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
A maturidade dos sistemas tecnológicos e a migração para a nuvem. Como lidar?
 
Deploying Bigdata from Zero to Million of records in Amazon Web Services
Deploying Bigdata from Zero to Million of records in Amazon Web ServicesDeploying Bigdata from Zero to Million of records in Amazon Web Services
Deploying Bigdata from Zero to Million of records in Amazon Web Services
 
HPC in AWS - Technical Workshop
HPC in AWS - Technical WorkshopHPC in AWS - Technical Workshop
HPC in AWS - Technical Workshop
 
Migração do seu website para a AWS
Migração do seu website para a AWSMigração do seu website para a AWS
Migração do seu website para a AWS
 
Seminario de Cloud Computing na UFRRJ
Seminario de Cloud Computing na UFRRJSeminario de Cloud Computing na UFRRJ
Seminario de Cloud Computing na UFRRJ
 
IBM Mobile Platform: Desenvolvimento de Aplicações Mobile
IBM Mobile Platform: Desenvolvimento de Aplicações MobileIBM Mobile Platform: Desenvolvimento de Aplicações Mobile
IBM Mobile Platform: Desenvolvimento de Aplicações Mobile
 
Just java 2011
Just java   2011Just java   2011
Just java 2011
 

Webcast WebSphere Portal Performance

  • 1. Tunning do WebSphere Portal Alex Coqueiro Blog: http://portal-ibm.blogspot.com
  • 2. Agenda Introdução Preparação para os testes Fases do teste Antes do Going-Live Ferramentas de Geração de Carga Estudos de Caso com análise de resultados Parâmetros de Performance
  • 3. Características do WebSphere Portal para Tunning O WebSphere Portal é uma aplicação Web e portanto muitas das técnicas de tunning são as mesmas que utilizamos em uma aplicação Java no WebSphere Application Server A principal diferença está na organização dos elementos da página, pois o Portal criar mini aplicações denominadas portlets. Um portlet com defeito pode comprometer a página inteira. Um dos benefícios do Portal é funcionar como um ponto de entrada para todas as aplicações da empresa. Desta forma o WebSphere Portal está mais sucetível a variações de performance que outros tipos de aplicações.
  • 4. Aplicações Ferramentas do Time e-RH Aplicações de Negócio e-Mail & Calendário e-Learning Pessoas Gerência de Conteúdo Mensagens Corporativas Notícias Personalizadas Instant Messaging Localização de Especialistas Abordagem Evolutiva de Funcionalidades
  • 5. Principio de Pareto O Princípio de Pareto foi criado no Séc. XIX por um economista italiano chamado Alfredo Pareto que, ao analisar a sociedade concluiu que grande parte da riqueza se encontrava nas mãos de um número demasiado reduzido de pessoas. Após concluir que este princípio estava válido em muitas áreas da vida quotidiana, estabeleceu o designado método de análise de Pareto, também conhecido como dos 20-80% e que significa que um pequeno número de causas (geralmente 20%) é responsável pela maioria dos problemas (geralmente 80%).
  • 6. Principais Problemas Não haver planejamento para a realização de testes de performance Focar somente em testes funcionais Acreditar que o seu código não tem problemas de performance Achar que o WebSphere Portal irá resolver todos os problemas de performance da aplicação No “desespero” solicitar um documento mágico da IBM para resolver o problema de performance da aplicação Achar que o usuário está sendo exigente e que o tempo de resposta está bom. Não envolver o usuário final nos testes é um erro muito comum. Análise do tipo: Se a aplicação está lenta, favor aumentar a memória ou trocar a máquina. Focar testes de performance somente no WebSphere Portal Ninguem pensa de massa de dados para o teste
  • 7. Agenda Preparação para os testes Planejamento Determinação dos objetivos de carga e tempo de respostas Descrever os casos de teste Montar o capacity plan
  • 8. Preparação – Planejamento Qual a duração dos testes de performance ? Inicie o mais rápido possível no seu projeto Alto impacto para correção no final do projeto No geral pode variar de semanas até meses
  • 9. Preparação – Planejamento Quantas pessoas são requeridas ? Depende principalmente do tamanho do projeto Pode ser de 1 pessoa até uma equipe de testers dedicada Quais os skills requeridos ? Depende das ferramentas de testes e da arquitetura do projeto Algumas ferramentas dependes de skill mais aprofundado para a realização dos testes Quanto custa ? Esta questão depende fundamentalmente da arquitetura, grau de profundidade dos testes e das ferramentas utilizadas Ferramentas comerciais no geral fornecem um detalhamento maior sobre a cobertura dos resultados, enquanto de ferramentas freeware requerem mais passos manuais Hardware e Software adicional pode ser requerido para os testes
  • 10. Preparação – Objetivos de Carga e Tempo de Resposta Objetivos de carga e tempos de resposta são essenciais para a realização dos testes Defina os objetivos do teste Defina o custo, pessoas envolvidas e as indisponibilidades do sistema Explique o funcionamento do processo de métricas Defina os objetivos de carga no ambiente de produção o mais rápido possível Utilize este números para as cargas iniciais e validação das estimativas do “capacity planning” Defina os critéricos de performance a serem atingidos Pense no peak loading antes Qual o volume de crescimento do acesso ao seu portal ? Há campanhas de marketing planejadas ?
  • 11. Preparação – Objetivos de Carga Exemplos de Carga baseadas em Transação Pages/hour: Taxa de número de páginas por hora UC/hour: Taxa de uso do Caso de Uso por hora Http requests/hour: HTTP requests por hora incluindo iFrames ou embeded Searches/hour: Buscas por hora Exemplos de Carga baseado no usuário User visits/hour: Taxa de visita de usuário Logins/hour: Taxa de Login Active Users/hour: Usuários ativos Obtenção destes números (mesmo que estimados) Tente obter do site existente Converse com usuários, desenvolvimento, gestores, etc
  • 12. Preparação – Objetivos de Tempo de Resposta Tempo de Resposta é um objetivo subjetivo Percepção do cliente é importante Defina objetivos por atividade de usuário Home page, login, funcionalidade, etc. Tempo de resposta médio é importante, foque nos percentuais de melhoria Transações com diferentes tempos de resposta é o que normalmente acontece Estudo objetivos maleáveis em função de condições de acesso diferentes como: Failover, dial-up, acesso acima do normal Compare seus objetivos com dados históricos
  • 13. Preparação – Planejamento para Peak Load Sempre desenvolva cenários de teste para horários de pico . Entenda a diferença no tempo de resposta entre o horário de pico e a média dos requestes Normalmente o fator varia de 3 a 5 vezes
  • 14. Preparação – Definição de Cenário em Caso de Teste Use cases descreve como os usuários utilizam o sistema Identificar paginas visitadas and atividades chaves como (busca, compra, etc.) Exemplo: Home page > Specials page > View item > Add to Cart > ... Escrever scripts de testes que simulem este comportamento Separe cenários de teste isolados para testar elementos chave da arquitetura de cenários de teste baseado em requerimento de usuário.
  • 15. Preparação – Escrever Casos de Teste Escreva cada atividade do usuário com um script Montagem do script Script deve usar o sistema na proporção correta. Não exagere ou seja muito conservador na smulação do usuário. Tipicamente, uma boa cobertura de projeto é realizada com 10 a 20 scripts de teste Use dados representativos Forneça um conjunto de dados que permita reuso e evite deadlock ou lock de conteúdo Cuidado com a massa de testes para não enviar emails aos clientes sem querer. Você tambem é responsável pela massa de dados No planejamento leve em consideração o tempo para preparar e revisar a massa de dados Testes reais requerem dados reais
  • 16. Preparação – Geração de Dados de Teste Testes reais requerem dados reais Logins de usuário Cuidado com o reuso de logins de usuário Cuidado com as informações em cache Volume no banco de dados Sempre que possível tenha uma volumetria de banco parecida com a esperada em produção
  • 17. Preparação – Capacity Plan Prepare o capacity plan Documento os números obtidos no levantamento de hardware Defina tempos de resposta Tenha uma porjeção de tempo futuro Sempre que possível contate o Techline para montagem do capacity planning
  • 18. Preparação – Capacity Plan Backend e Infraestrutura Certifique-se que o Backend tem recursos suficientes para a realização dos testes Cuidado com o dimensionamento de banda de rede ou latência de rede
  • 19. Agenda Fases de Teste Teste com um único usuário Teste com um sistema Teste Incremental Teste de Estabilidade
  • 20. 4 Fases de Teste Teste com um usuário único Ajuda na análise do código Analisa footprint da aplicação Ajuda na análise da arquitetura Teste com um sistema Inicie com casos de teste mais simples e migre aos poucos para cenários mais complexos Identifique e remova gargalos antes de avançar para cenários mais complexos Teste Incremental Crescer com a carga Identifique e remova gargalos do ambiente como um todo Teste de Estabilidade Long runs Teste Failover e high-availability
  • 21. Fase 1 Deve ser integrado como parte do processo de desenvolvimento Pode ser realizado pelos desenvolvedores Integrado aos testes de caixa branca Documentar alterações no ambiente de portal como uso de portlet cache Oportunidade para rever o código da aplicação
  • 22. Fase 1 Ferramenta Análise de código e Degub Uso de Rational Application Developer, WebSphere Portlet Factory, Jtest, etc. Criar testes simples de carga Um usuário Tempo de duração dos teste: 10min a 1h
  • 23. Fase 2 Ponto de Teste
  • 24. Fase 2 Introduz conceito de concorrência Processo Interativo Baseline, tune, teste, analise de dados Adicione cenários de teste mais complexos Cuidados com a regressão de performance Ferramentas nesta fase Ferramentas de monitoração como TPV, ITCAM, vmstat , DB2 snapshots, etc.
  • 25. Fase 2 Baseline Verifique números iniciais Teste Verifique a duração Observe todos os sistemas e logs Utilização de CPU Utilização de Disco (I/O) e rede O trabalho do Garbage Collection Antes de reexecutar os testes Registre os resultados Arrume os problemas primeiro
  • 26. Fase 2 – Coleta de Dados Coleta de Resultados Não inclua o tempo de ramp-up/ramp-down Repeat tests Reexecute scripts algumas vezes para perceber comportamento Execução Execute o script de 30-45 minutes durante a fase tuning Evite testes em dias de backups de DB, e manutenção de ambiente
  • 27. Fase 2 – Critério de Encerramento Sistema apresenta um comportamento estável Comportamento estável significa comportamento repetitivo Não há erros no log Gargalos foram removidos CPU do WebSphere Portal está sendo bem utilizada Objetivos de performance atingidos Parâmetros de Tuning (relevantes) foram identificados Planos de ação (Portal, Database, SO, rede) foram definidos
  • 29. Fase 3 Testar incremental com ambiente integrado Verificar se tempo de resposta se mantem estável Ajustar configuração de load balance Entender impacto de ambientes externos como firewall no projeto Testes considerando cenários de usuários locais e remotos Podemos usar as mesmas ferramentas da fase 2
  • 30. Fase 3 Processo de Teste similar a fase 2 Dimensione ferramentas para simulação de usuários para evitar gargalos na ponta Esta fase normalmente apresenta recomendações de Tunning para o usuário
  • 31. Fase 4 – Testes de Estabilidade Scripts executando durante um longo tempo Cubra diferentes horas do dia (preferenciamente 24h) Deixe o script rodando em finais de semana Teste de Failover Simule falhas de hardware e software para estudar comportamento do sistema e ver se action plan está sendo seguido Validar tempo de resposta em situações de failover
  • 32. Fase 4 – Testes em condições normais
  • 33. Fase 4 – Testes em condições de falha
  • 34. Fase 4 – Critérios de encerramento Resultados desta atividade Logs estão limpos Tempo de resposta estável Utilização de recursos contantes Fragmentação de JVM baixa Failover Requestes não foram perdidos e sessões do usuário foram mantidas Portal tem condições de manter disponibilidade mesmo em caso de falhas
  • 35. Agenda Antes do Going-Live
  • 36. Antes do Going-Live Aplique os parâmetros de tuning em produção Parâmetros de J2EE Parâmetros para os portlets Configurações de Sistema Operacional, WebServer Configuração no backend Garanta a compatibilidade entre as versões do ambiente de homologação e produção
  • 37. Antes do Going Live – Rollout Considere impacto em diferentes estratégias Rollout x Big bang Rollout Portlets / grupos de usuários são adicionados em ondas Reduz o risco de problemas iniciais de performance Considere as dificuldades de alterar o ambiente após o inicio das operações no site Big bang Todos os usuários são movidos ao mesmo tempo para o Websphere Portal Importante o sistema funcionar muito bem nos primeiros dias Mantenha uma estratégia de switch back para a versão antiga do portal em caso de contingência
  • 38. Ferramentas de Geração de Carga Comerciais IBM Rational Performance Tester Mercury LoadRunner Ferramentas Open Source OpenSTA JMeter Outras Ferramentas Grinder TestMaker
  • 39. IBM Rational Performance Tester Baseado no Eclipse Rica API para a formação de cenários e scripts de execução bem flexíveis Relatório bem completo
  • 40. Mercury LoadRunner Pode ser encontrada em alguns clientes Compatível para testes com o WebSphere Portal
  • 41. JMeter Pode ser utilizada para testar banco de dados, ftp, legados, etc Cobertura de informações bem abrangente http://jakarta.apache.org/jmeter Ferramenta baseada em Java
  • 42. Open Systems Testing Architecture (OpenSTA) Boa capacidade gráfica de apresentação de dados mas apresenta limitações na configuração de cenários Pode exportar dados diretamente para planilhas eletrônicas http://www.opensta.org Ferramenta baseada em Windows
  • 43. Pense nos números como humanos Testes de laboratório Usuário Virtual (vuser) Testes reais de usuário Usuário Real 14 pages views em 6 segundos logou 51 vezes em 5 minutos Resultado de: 14 pages views em 5 minutos logou 1 vez em 5 minutos Resultado de: 2.3 pages por segundo 0.05 pages por segundo Se o Portal foi dimensionado para 400 páginas por segundo 170 usuários suportados 8000 usuários reais suportados Carga gerada pelas ferramentas de teste Carga gerado por humanos
  • 44. Exemplo de Captação de Dados A interpretação dos números é um elemento muito importante na análise dos dados. Abaixo vamos analisar os resultados.
  • 45. Comparativo entre indices de performance (tempo em milisegundos x atividade de tunning)
  • 46. Parâmetros de Tunning Inicie Tunning pelos adequando os parâmetros de WebSphere Application Server Parâmetros de ambiente (ulimit) Parâmetros de rede (tcp/ip) JVM e WebContainer Estude o WebSphere Portal Tunning Guide Adeque os parâmetros de banco de dados Adeque os parâmetros específicos de WebSphere Portal.
  • 47. Parâmetros de Portal JVM de 32 bits x 64 bits Em computadores de 64 bits podemos ter um endereçamento de memória superior a 2.5GB (limite máximo de 32bits de 4GB) Entretanto cuidado por objetos que contém referências múltiplas de memória apresentam tamanho significativamento maior em ambientes de 64bits. Analise o seu portal e caso ele tenha um baixo uso de memória, endereçamento de 32 bits possuem uma melhor performance. Hyper-Threading Os testes de laboratório da IBM constataram que o uso de Hyper Threading (HT) em servidores Intel ou Simultaneous Multithreading (SMT) em power series influemciam positivamente na performance do WebSphere Portal. Instalação do Portal O portal possui um parâmetro de instalação denominado “development mode”. Este parâmetro é indicado para ambientes de desenvolvimento, mas não apresenta otimizações de performance. Portanto ele nunca deve ser usado em produção.
  • 48. Parâmetros de Portal Heap management: O parâmetro de heap size é diretamente proporcional ao montante de memória utilizada pela sua aplicação. Necessário um balanceamento entre o heapsize e a memória fisica da aplicação Exemplo: 2GB de RAM em um máquina Windows 32bits um valor máximo para heap size é 1408MB. A mesma configuração em AIX seria mais adequado com o 1792MB e em Linux com kernel superior a 2.6 o valor seria 2048MB. Igualar o heapsize minimum e maximium evita a fragmentação da memória. A implicação disto é muitos portlets usando pouca memória podem apresentar degradação do sistema. Um número adequado para o exemplo acima nesta situação seria 320GB. Web Containers Um bom parâmetro inicial é maxthreads=50 (WebSphere Administrative Console: Servers -> Application Servers -> WebSphere Portal-> Additional Properties: Thread Pools-> Web Container -> Thread Pool - Minimum size threads - Maximum size threads)
  • 49. Parâmetros de Portal Portlet Caching e Cache Manager Service Caches portlets são realizados no web container “ Aggregator”engine constrói as páginas a partir dos portlets As informações mais antigas do cache são descartadas quando não mais mais espaço para geração do cache. Portlet caching trabalha melhor com portlets mais maiores e mais complexos
  • 50. Parâmetros em banco de Dados Use Tivoli Performance Viewer para refinar os parâmetros Prepared Statement Cache é um parâmetro que normalmente precisa ser adequado Connection Pool é outro parâmetro importante a ser observado pelo TPV Reorganize os databases do Portal após a realização de uma grande carga de testes (db2 reorgchk update statistics on table all) Não utilize Cloudpsace ou Derby em ambiente de produção. Utilize sistemas de banco de dados que privilegiem a performance como por exemplo DB2.
  • 51. LDAP Verifique se o LDAP tem capacidade suficiente para suportar a nova carga gerada pelo WebSphere Portal Filtros de LDAP tem um impacto bastante grande na performance do Portal Na configuração do Portal, há alguns filtros pré-configurados. Analise junto com o especialista de LDAP para ver se estes filtros estão de acordo com o que foi configurado no ambiente
  • 52. Web Server (Parâmetros a serem analisados)
  • 53. Portlet Development No desenvolvimento com Portal, seus componentes (portlets) são pedaços da sua página. Mantenha a menor quantidade possível de dados na sessão. Seus portlets não são os únicos na página Cuidado com os logs. Caso esteja usando o logging API, verifique se o mesmo está habilitado. “ if(getPortletLog().isDebugEnabled())” antes de escrever no log. Cuidado com a instrução try, catch, finnaly no Java no fechamento das conexões. Muito comum os desenvolvedores esquecerem de fechar as conexões em situações de exceção.
  • 54. Web 2.0 O Websphere Portal possui um tema que utiliza os potenciais de implementações AJAX. Cuidado especial nos testes com este tema. Para alterar os parâmetros de cache que são utilizados por este tema é necessário alterar o arquivo NavigatorService.properties . Os parâmetro que geram impacto são remote.cache.expiration.feed.cm, remote.cache.expiration.feed.nm, remote.cache.expiration.feed.lm e remote.cache.expiration.feed.pm.
  • 55. Web Content management No geral os mesmos parâmetros utilizados pelo WebSphere Portal são aplicáveis ao WCM. As maiores diferenças estão no uso de cache, thread de Web Container e conexões de data source do JCR. Normalmente os servidores de Authoring e Publishing tem valores de tunning diferentes. Importante lembrar que o uso de Authoring e Publishing na mesma máquina tem impacto direto na performance do Portal
  • 56. Resumo Garanta um planejamento do seu teste o mais rápido possível As melhorias de performance não dependem única e exclusivamente do servidor de deployment Duas semanas antes de encerrar o projeto não é o ideal para iniciar os testes de performance e tunning Entenda que quanto mais refinado o teste, maior o tempo e recursos necessários. Estabeleça um plano de testes realista. A preocupação com performance deve extrapolar as fronteiras do administrador do Portal Performance é um trabalho que aplica-se a todas as camadas Web, Network, Portal, DB e sistemas legados. Envolva o cliente no processo de testes para eles entenderem os gargalos
  • 57. Maiores Informações WebSphere Portal Information Center: http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/index.jsp The Tuning section of the WebSphere Application Server Information Center located at: http://www.ibm.com/software/webservers/appserv/was/library/ WebSphere Portal Benchmark Results: Contact WPLC Performance team. DB2 Information Center: http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp The ROLTP factors for IBM pSeries Servers™ can be found at http://www.ibm.com/servers/eserver/pseries/hardware/system_perf.html WebSphere Application Server Performance information: http://www.ibm.com/software/webservers/appserv/was/performance.html Recommended reading list: J2EE and WebSphere Application Server http://www.ibm.com/developerworks/websphere/library/techarticles/0305_issw/recommendedreading.html WebSphere Application Server Development Best Practices for Performance and Scalability: http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf Diagnosing Performance Problems for WebSphere Portal 5.1 (though this document was written for WebSphere Portal 5.1, the lessons apply to WebSphere Portal 6.1 as well): http://www.ibm.com/support/docview.wss?uid=swg27007059
  • 59. Obrigado Alex Coqueiro [email_address] http://portal-ibm.blogspot.com

Notas do Editor

  1. Chart Source: IBM Course: PEDSP00B - Performance Engineering: Delivering Successful Projects