• Nenhum resultado encontrado

Performance JEE. Haroldo R. J. de Macêdo

N/A
N/A
Protected

Academic year: 2021

Share "Performance JEE. Haroldo R. J. de Macêdo"

Copied!
43
0
0

Texto

(1)

Performance JEE

Performance JEE

Haroldo R. J. de Macêdo

(2)

Agenda

Agenda

Conceitos de performance

Testes para performance

Lições aprendidas

(3)

Programa Java x JEE

Programa Java x JEE

Java

◦ Interface gráfica ◦ Cliente / Servidor ◦ Um usuário ◦ Executa localmente 

JEE

◦ Roda remotamente em um contêiner JEE

◦ Recebe requisições de vários usuários

◦ N camadas

(4)

Custo da baixa performance

Custo da baixa performance

Custos de suporte altíssimos

◦ Mais recursos são necessários para a produção (CPU, Memória, Disco, Rede)

Perda de confiança

◦ Tempo de resposta alto e piorando

Perda de credibilidade

◦ Performance prometida não alcançada

Perda de receita

(5)

Conceitos equivocados

Conceitos equivocados

Basta apertar o “botão mágico”

Acrescente mais memória ao sistema

Inclua mais servidores

Aumente a quantidade de CPUs

Basta escrever o código e fazer deploy

Não se pode criar um ambiente performático para

um aplicativo mal projetado

(6)

Quando pensar em performance

Quando pensar em performance

No projeto da arquitetura

Durante o desenvolvimento

Nos testes unitários

Nos testes de integração

Nos testes de carga

No momento de deploy

(7)

Modelo em camadas JEE

(8)

Topologia JEE em produção

Topologia JEE em produção

(9)

Servidor Web

Rede

Balanceador de carga

Servidor de Aplicação

Banco de Dados

Hardware

Projeto

Firewall

Back End

EJBs

Etc.

15/09/2009 Performance JEE - Just Java 2009 9

Qual é a causa da baixa performance

Qual é a causa da baixa performance

(10)

Atendimento em um supermercado

Exemplo centrado no atendimento no caixa do supermercado ◦ Dirigir-se ao caixa

◦ Passar os produtos pelo caixa

◦ Pagar

◦ Ensacar os produtos

◦ Sair do caixa com os produtos no carrinho

Não leva em consideração

◦ Deslocamento até o supermercado

◦ Estacionar o carro

◦ Escolher os produtos

◦ Colocar as compras no carro

◦ Dirigir para casa

Exemplo da apresentação

Exemplo da apresentação

(11)

Agenda

Agenda

Conceitos de performance

Testes para performance

Lições aprendidas

(12)

Conceitos de performance

Conceitos de performance

Tempo de resposta

Carga

Fluxo (Throughput)

Capacidade

(13)

Outros conceitos

Outros conceitos

Enfileiramento

Escalabilidade

Gargalo

Monitoramento

Arquitetura

Isolamento

(14)

Tempo de resposta

Tempo de resposta

Tempo que um indivíduo aguarda pela resposta de

uma requisição

◦ Normalmente a média dos 95% melhores tempos

Componentes principais

◦ Tempo de processamento

(15)

Tempo de resposta

Tempo de resposta

É uma medida crítica

Baixo tempo de resposta desagrada os usuários

Tempo de resposta deve ser considerado em:

◦ Momentos de pico

◦ Cargas altas fora do normal

◦ Clientes usando rede discada

(16)

Tempo de resposta

Tempo de resposta

Na Web

◦ Tempo entre uma requisição e sua resposta

◦ Tempo entre o clique de um botão e apresentação da nova tela

No exemplo do supermercado

◦ É o tempo que o cliente demora desde o momento que chega ao caixa até o momento que sai do caixa com as compras

(17)

Carga

Carga

É a pressão em um site expressa em:

◦ Atividade dos usuários

Usuários chegandoUsuários se logando

Usuários enviando requisições ◦ Atividades de requisição

Requisições por segundoPáginas por hora

Transações por segundo

(18)

Carga

Carga

No exemplo do supermercado

◦ Quantidade de clientes no supermercado que estão indo em direção ao caixa ou que já estão na fila do caixa

Quantidade de clientes que usam o site ao mesmo

(19)

Fluxo

Fluxo

Throughput

Mede tarefas concluídas por unidade de tempo

É uma medida de capacidade

Não mede todas as solicitações, apenas as que

foram atendidas

◦ Solicitações em excesso serão enfileiradas, abandonadas ou descartadas

(20)

Fluxo

Fluxo

No exemplo do supermercado

◦ Quantidade de clientes atendidos por minuto no caixa do supermercado

◦ Não contabiliza os clientes que desistiram ao ver uma fila grande

Outros exemplos

◦ Carros que passam por minuto em uma ponte

◦ Requisições por segundo num site

(21)

Fluxo

Fluxo

Caixa de supermercado

◦ Cada caixa atende a um cliente a cada 5 minutos

◦ Com 1 caixa, o supermercado atende

12 clientes / hora

◦ Com 10 caixas, o supermercado atende

2 clientes / minuto

(22)

Capacidade

Capacidade

Descreve a carga suportada

O resultado final do teste de carga e performance

◦ Determina a infraestrutura de hardware e software necessária

◦ Deixa uma “gordura” para emergências

◦ Leva em consideração o crescimento do site para um aumento futuro da carga

(23)

Capacidade

Capacidade

No exemplo do supermercado

◦ Quantidade de caixas disponíveis na loja do supermercado

◦ Tipo do caixa

Leitora de código de barrasDigitação do preço

◦ Quantidade da caixas em operação

◦ Qualidade do pessoal do caixa

(24)

Capacidade

Capacidade

Exemplo do supermercado

◦ Quantas caixas registradoras serão necessárias para atender a 10.000 clientes por dia?

◦ Há necessidade de caixas extras no fim do mês?

◦ Será necessário mais espaço físico para expansões futuras?

Mais estacionamentoMais andares

(25)

Gargalo

Gargalo

Ponto de redução de fluxo

Aparece em programas multithread ou multiusuáriosUsuários enfileirados esperando recurso compartilhado

◦ CPU, I/O, Registro no BD

Threads esperando por uma tarefa ser completadaResolva os gargalos em ordem de severidade

O sistema é tão rápido quanto o seu componente mais lento

(26)

Gargalo

Gargalo

No aeroporto

◦ Check-in ◦ Detector de metais ◦ Porta do avião 

Nas estradas

◦ Construções ◦ Pedágios ◦ Acidentes

(27)

Escalabilidade

Escalabilidade

Define a facilidade de expansão do sistema

Sites precisam se expandir, às vezes

inesperadamente

◦ Novos mercados

◦ Crescimento normal

◦ Picos extremos

(28)

Escalabilidade

Escalabilidade

No supermercado

◦ Caixas disponíveis na loja

◦ Espaço para instalação de mais caixas

◦ Redução do espaço ocupado por um caixa

(29)

Tempo de Resposta

Carga

Fluxo (Throughput)

Capacidade

Enfileiramento

Escalabilidade

Gargalo

Monitoramento

Arquitetura

Isolamento

15/09/2009 Performance JEE - Just Java 2009 29

Conceitos de performance

Conceitos de performance

(30)

Como melhorar a performance

Como melhorar a performance

Aumentar a capacidade

◦ Quantidade de CPU

◦ Quantidade de caixas de supermercado

Reduzir o tempo de processamento

◦ Acelerar um ou mais passos da transação

◦ Código mais eficiente

◦ Caixas trabalhando mais rápido

Reduzir o número de passos necessários para a

transação

◦ Reduzir o número de telas

(31)

Agenda

Agenda

Conceitos de performance

Testes para performance

Lições aprendidas

(32)

Quando testar?

Quando testar?

(33)

Análise de código

Análise de código

Análise estática de código

◦ Implementação das melhores práticas

Código

Arquitetura

Análise dinâmica de código

◦ Profiling

◦ Leak de memória

◦ Gargalos

◦ Problemas com thread

(34)

Por que fazer teste de performance

Por que fazer teste de performance

Melhorar a qualidade percebida pelo usuário

Descobrir mais cedo defeitos que reduzem a

performance

◦ Custo por defeito:

1 no projeto10 nos testes

100 em produção

Obter dados para decidir sobre funcionalidades que

(35)

Objetivos dos testes de performance

Objetivos dos testes de performance

Identificar os tempos de resposta

◦ Validar os requisitos e tempos de resposta

◦ Fazer benchmark

◦ SLA (Nível de serviço acordado)

Determinar o número máximo de usuários

◦ Plano de capacidade

◦ Escalabilidade

Descobrir a melhor configuração

◦ Carga normal e pico

◦ Ambiente de failover

(36)

Agenda

Agenda

Conceitos de performance

Testes para performance

(37)

Sistema Web com 1.200 transações / segundo

Preocupações de Projeto

◦ Código que demore mais 1ms sem necessidade

Tem o impacto de 1,2 segundo em consumo de CPUPreocupação com o código que possui laços de loop ◦ Gargalo que pare o sistema por 30 segundos

Enfileira 36.000 transaçõesDerruba o sistema

Monitoração e ação automática

15/09/2009 Performance JEE - Just Java 2009 37

Altíssima carga

Altíssima carga

(38)

Gargalo no BD

Gargalo no BD

Acesso serializado a uma tabela do BD

◦ O sistema é tão rápido quanto o tempo de resposta do banco

◦ Não adianta acrescentar CPU ou memória no contêiner, nem melhorar a rede

◦ Melhora no projeto para aumentar a concorrência

Queries demoradas

◦ Alto consumo de I/O e CPU do servidor de BD

(39)

Loop no código

Loop no código

Uma das funcionalidades entrava em loop

◦ Consumo alto de CPU

◦ Baixo impacto inicial

Arquitetura de threads

◦ Melhora no processo de desenvolvimento de software, com mais testes e controle de versão

(40)

Melhores práticas

Melhores práticas

Defina os objetivos de performance o mais cedo possívelValide a arquitetura e o projeto o mais cedo possívelUse o design-pattern MVC

Não reinvente a roda

Programe as especificações e não o servidor de aplicativosUse o desenvolvimento iterativo

Sempre use Sessions Facade quando usar componentes EJBsPegue os recursos compartilhados tarde e os devolva rápidoColoque o processamento perto do recurso que ele necessitaUse o JEE ao invés de tentar enganá-lo

(41)
(42)

Referência

Referência

Curso

◦ WF-881 – IBM WebSphere V6 Performance Testing and Monitoring Tools for Administrators

IBM Red Books

◦ SG246392 – WebSphere Application Server V6 Scalability and Performance Handbook

◦ SG247497 – Designing and Coding Applications for Performance and Scalability in WebSphere Application Server

(43)

Obrigado

Merci Grazie

Gracias

Thank You

Danke Japanese English French Russian German Italian Spanish Arabic Traditional Chinese Simplified Chinese Thai Korean Hindi Tamil Brazilian Portuguese

Referências

Documentos relacionados

1077 Associação Alternativa de Cultura e Arte São Paulo/SP METROPOLE Samba: Socializando e Aprendizado R$ 377.240,00 53,5 Apto a Captação de Recursos em análise

Como não se tem certeza do que realmente irá acontecer no passar dessas vinte e quatro horas, a pessoa obriga-se a pesar, prever, imaginar e tomar

Todos os ECAC rastrearam indivíduos aos 65 ou mais anos, como sendo a idade na qual a prevalência de AAA é elevada o suficiente para haver benefício no rastreio, tendo em conta o

4.  Teaching  methodologies  aim  to  stimulate  the  work  in  such  a  way  as  to  to  develop  the  students’  critical  and  scientific  attitude.  They 

A seguir, demonstraremos o passo-a- passo para a instalação e configuração do ambiente de desenvolvimento que será utilizado em nosso

Observando isso, foi desenvolvido pela Agência experimental Wow Comunicação, na campanha “Beleza que inspira momentos” para o salão Sinval de Souza – Cabelo e face,

Cada vez mais a área rural está se modernizando, com tecnologias mais avançadas, mão de obra especializada e os proprietários estão em busca de aumentar os seus resultados, mas

A aplicação será denominada de SIDOC (Sistema de Documentos Eletrônicos), e utilizará como tecnologia a linguagem de programação Java na sua plataforma JEE (Java