Performance JEE. Haroldo R. J. de Macêdo hmacedo@br.ibm.com

Documentos relacionados
Quarta-feira, 09 de janeiro de 2008

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Comparativo de desempenho do Pervasive PSQL v11

MANUAL DE UTILIZAÇÃO

Implementação de uma Alçada Decisória usando a Suíte SOA IBM BPM

Como funciona a Solução NFC-e ifox. Iniciar a utilização da NFC-e

Processos e Threads (partes I e II)

GUIA INTEGRA SERVICES E STATUS MONITOR

Desenvolvendo Websites com PHP

MODELO CLIENTE SERVIDOR

Sistema Operacional Correção - Exercício de Revisão

Manual QuotServ Todos os direitos reservados 2006/2007

UFF-Fundamentos de Sistemas Multimídia. Redes de Distribuição de Conteúdo (CDN)

MONITORAMENTO DO AMBIENTE TECNOLÓGICO FoccoMONITOR

Noções de. Microsoft SQL Server. Microsoft SQL Server

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Guia de Especificação. Vijeo Citect

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

PROPOSTA COMERCIAL CLOUD SERVER

Introdução. O Windows Server 2003 está dividido em quatro versões:

Sistemas Distribuídos

INSTALANDO SOFTWARE Ifox irestaurantes

Excelência em Metodologia de Helpdesk

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Guia de instalação. Configuração necessária Instalação e ativação

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Informação é o seu bem mais precioso e você não pode correr riscos de perder dados importantes. Por isso, oferecemos um serviço de qualidade e

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Instalação Mesa Virtual 2.0 Impacta

Componentes de um sistema de firewall - I

Introdução a Banco de Dados

18/04/2006 Micropagamento F2b Web Services Web rev 00

3 SCS: Sistema de Componentes de Software

DMS Documento de Modelagem de Sistema. Versão: 1.4

Entendendo como funciona o NAT

Manual do Programa de Caixa1

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

ESPECIFICAÇÕES TÉCNICAS e OPERACIONAIS. BioMatch Server e BioMatch Client

Manual do Usuário CFCWeb BA

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Programação Concorrente Processos e Threads

ESTUDO DE CASO WINDOWS VISTA

Manual Operacional Expansão Nono Digito

Testes de Performance

Este é o material de apoio oferecido pela Clic Viagem, criado com finalidade de instruir melhor nossos clientes e proporcionar maior segurança,

Introdução à Computação: Sistemas Operacionais II

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.

Contil Informática. Curso Técnico em Informática Processadores Core

Organização de Computadores

SISTEMAS OPERACIONAIS

VERIFIQUE SE SEUS SITES ESTÃO PRONTOS PARA O BLACK FRIDAY 11 MANEIRAS DE ACABAR COM OS PROBLEMAS DE DESEMPENHO

Versão 2.0. Data de criação 13/05/2015

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

Controle de Almoxarifado

ESCOLHA UM TESTE PARA EXECUTAR

Vitória (ES), 13 de março de À T.O.D.O.S. OPERADORES S/A.

SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO

1.264 Aula 1. Introdução ao curso Lição de casa 1 Métodos de desenvolvimento de software

Aranda INVENTORY. Benefícios Estratégicos para sua Organização. (Standard & Plus Edition) Beneficios. Características V

A partir do XMon é possível:

MULTIACERVO - VERSÃO 17.*

Ferramentas de Acesso Remoto

Manual do e-dimed 4.0

Fundamentos de Sistemas Operacionais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Faça-Fácil: Passos Terminal Server

Portaria Express 3.0

Manual Operacional SIGA

Você sabia que... O pagamento numa loja virtual. Guia #6 Como as formas de pagamento podem interferir nas minhas vendas

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Firewall. Alunos: Hélio Cândido Andersson Sales

Atualização Mandatória de Versão do Amadeus Pro Web (2.0P431BR) 25 de junho de 2007 Gerência de Produtos & Operações Amadeus Brasil

Você consegue dirigir seu carro sem um painel de controle? Você consegue gerenciar um Service Desk sem Indicadores?

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Planejando o aplicativo

Orientações sobre o Novo Produto SACR Sistema de Acolhimento com Classificação de Risco. Versão 1.0, 30/11/2009

Manual de Utilização do GLPI

O presente documento apresenta um passo a passo para os seguintes processos:

Gerência de Processador

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Threads. 8 de janeiro de 2015

Desafios e Oportunidades de Pesquisa na Área de HPC Cloud

Estudo de Caso 22. Figura 4 Console da TEC*. *Alguns dados foram removidos atendendo a política de segurança da informação da empresa.

C Por que é preciso fazer rápido o produto web?

1. O que é a integração de processos

Transcrição:

Performance JEE Haroldo R. J. de Macêdo hmacedo@br.ibm.com

Agenda Conceitos de performance Testes para performance Lições aprendidas 15/09/2009 Performance JEE - Just Java 2009 2

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 15/09/2009 Performance JEE - Just Java 2009 3

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 Como consequência da perda de clientes 15/09/2009 Performance JEE - Just Java 2009 4

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 15/09/2009 Performance JEE - Just Java 2009 5

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 Sempre tenha performance em mente 15/09/2009 Performance JEE - Just Java 2009 6

Modelo em camadas JEE

Topologia JEE em produção

Qual é a causa da baixa performance 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

Exemplo da apresentação 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 15/09/2009 Performance JEE - Just Java 2009 10

Agenda Conceitos de performance Testes para performance Lições aprendidas 15/09/2009 Performance JEE - Just Java 2009 11

Conceitos de performance Tempo de resposta Carga Fluxo (Throughput) Capacidade 15/09/2009 Performance JEE - Just Java 2009 12

Outros conceitos Enfileiramento Escalabilidade Gargalo Monitoramento Arquitetura Isolamento 15/09/2009 Performance JEE - Just Java 2009 13

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 Tempo de espera em filas 15/09/2009 Performance JEE - Just Java 2009 14

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 15/09/2009 Performance JEE - Just Java 2009 15

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 15/09/2009 Performance JEE - Just Java 2009 16

Carga É a pressão em um site expressa em: Atividade dos usuários Usuários chegando Usuários se logando Usuários enviando requisições Atividades de requisição Requisições por segundo Páginas por hora Transações por segundo 15/09/2009 Performance JEE - Just Java 2009 17

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 tempo 15/09/2009 Performance JEE - Just Java 2009 18

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 15/09/2009 Performance JEE - Just Java 2009 19

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 Clientes servidos por hora em um restaurante 15/09/2009 Performance JEE - Just Java 2009 20

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 15/09/2009 Performance JEE - Just Java 2009 21

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 15/09/2009 Performance JEE - Just Java 2009 22

Capacidade No exemplo do supermercado Quantidade de caixas disponíveis na loja do supermercado Tipo do caixa Leitora de código de barras Digitação do preço Quantidade da caixas em operação Qualidade do pessoal do caixa 15/09/2009 Performance JEE - Just Java 2009 23

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 estacionamento Mais andares Outro prédio nas proximidades 15/09/2009 Performance JEE - Just Java 2009 24

Gargalo Ponto de redução de fluxo Aparece em programas multithread ou multiusuários Usuários enfileirados esperando recurso compartilhado CPU, I/O, Registro no BD Threads esperando por uma tarefa ser completada Resolva os gargalos em ordem de severidade O sistema é tão rápido quanto o seu componente mais lento 15/09/2009 Performance JEE - Just Java 2009 25

Gargalo No aeroporto Check-in Detector de metais Porta do avião Nas estradas Construções Pedágios Acidentes 15/09/2009 Performance JEE - Just Java 2009 26

Escalabilidade Define a facilidade de expansão do sistema Sites precisam se expandir, às vezes inesperadamente Novos mercados Crescimento normal Picos extremos 15/09/2009 Performance JEE - Just Java 2009 27

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 Aumento do prédio, com a compra de prédios vizinhos 15/09/2009 Performance JEE - Just Java 2009 28

Conceitos de performance Tempo de Resposta Carga Fluxo (Throughput) Capacidade Enfileiramento Escalabilidade Gargalo Monitoramento Arquitetura Isolamento 15/09/2009 Performance JEE - Just Java 2009 29

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 Não retirar os produtos do carrinho de supermercado 15/09/2009 Performance JEE - Just Java 2009 30

Agenda Conceitos de performance Testes para performance Lições aprendidas 15/09/2009 Performance JEE - Just Java 2009 31

Quando testar? 15/09/2009 Performance JEE - Just Java 2009 32

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 15/09/2009 Performance JEE - Just Java 2009 33

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 projeto 10 nos testes 100 em produção Obter dados para decidir sobre funcionalidades que afetam o aplicativo 15/09/2009 Performance JEE - Just Java 2009 34

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 15/09/2009 Performance JEE - Just Java 2009 35

Agenda Conceitos de performance Testes para performance Lições aprendidas 15/09/2009 Performance JEE - Just Java 2009 36

Altíssima carga 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 CPU Preocupação com o código que possui laços de loop Gargalo que pare o sistema por 30 segundos Enfileira 36.000 transações Derruba o sistema Monitoração e ação automática 15/09/2009 Performance JEE - Just Java 2009 37

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 Alteração de funcionalidade restringindo a busca 15/09/2009 Performance JEE - Just Java 2009 38

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 15/09/2009 Performance JEE - Just Java 2009 39

Melhores práticas Defina os objetivos de performance o mais cedo possível Valide a arquitetura e o projeto o mais cedo possível Use o design-pattern MVC Não reinvente a roda Programe as especificações e não o servidor de aplicativos Use o desenvolvimento iterativo Sempre use Sessions Facade quando usar componentes EJBs Pegue os recursos compartilhados tarde e os devolva rápido Coloque o processamento perto do recurso que ele necessita Use o JEE ao invés de tentar enganá-lo 15/09/2009 Performance JEE - Just Java 2009 40

Perguntas?

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 15/09/2009 Performance JEE - Just Java 2009 42

Hindi Russian Traditional Chinese Obrigado Gracias Spanish Thai Brazilian Portuguese Arabic Merci French Thank You English Grazie Italian Simplified Chinese Danke German Tamil Korean Japanese