Webcast WebSphere Portal Performance

1.529 visualizações

Publicada em

Processo para realização de atividades de tunning no WebSphere Portal.

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.529
No SlideShare
0
A partir de incorporações
0
Número de incorporações
125
Ações
Compartilhamentos
0
Downloads
47
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Chart Source: IBM Course: PEDSP00B - Performance Engineering: Delivering Successful Projects
  • Webcast WebSphere Portal Performance

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

    ×