Tuning de Servidores de Aplicação Java EE

Documentos relacionados
EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Apache + PHP + MySQL

Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux

Fatos e Mitos do Java EE. Fernando Lozano Consultor 4Linux lozano@4linux.com.br

Programação e Configuração de Aplicações JEE. Edilmar Alves

Administração e Desenvolvimento de Soluções em TI

Tornando acessível a tecnologia e os melhores serviços

Gerencie sua rede de comunicação de dados com eficiência, aumente a produtividade e utilize da melhor maneira todos os seus recursos

Projetos Corporativos Baseados na Tecnologia Java Que Falham: O Que Podemos Aprender Deles?

Experiência em missão crítica de missão crítica

Comparativo de desempenho do Pervasive PSQL v11

Como montar o quebra-cabeças do backup? Ricardo Costa e Bruno Lobo Backup, Recovery & Archiving Solutions

UFG - Instituto de Informática

Programação para Internet II

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

CONSULTORIA E SERVIÇOS DE INFORMÁTICA

MONITORAMENTO DO AMBIENTE TECNOLÓGICO FoccoMONITOR

UTILIZAÇÃO DA COMPETÊNCIA DE TI ATRAVÉS DE UM ABRANGENTE PLANEJAMENTO DE CAPACIDADE E MODELAGEM DE CARGAS DE TRABALHO

Arquitetura de Banco de Dados

Sistemas Operacionais

Líder em Soluções Samba 4 no Brasil

Software Livre e proprietário: Coexistência de diferentes formas de Licenciamento, interoperabilidade e eficiência na inclusão digital e social.

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Agenda do Mini-Curso. Sérgio Yoshio Fujii. Ethan Boardman.

soluções inovadoras para desafios de negócios Manual explicativo do quadro do modelo de negócios passo a passo com exemplos

SOFTWARE INFORMAÇÕES GERAIS

A partir do XMon é possível:

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Administração do Servidor da Aplicação e-sus Hospitalar

Resumo. Sobre a Produtivit Quem somos Missão, Visão e Valores O que fazemos Como fazemos Especialidades Parcerias Cases Clientes

Symantec Discovery. Controle seu software e hardware e monitore a conformidade com as licenças em toda a infra-estrutura de TI de várias plataformas

ITIL v3 - Operação de Serviço - Parte 1

OTIMIZAÇÃO E PERFORMANCE DE BANCO DE DADOS UTILIZANDO SQL TUNING

POLÍTICA DE PARCERIA

Softwares Aplicativos Banco de Dados

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Problemas de Performance Rio. Parte 1 - Agosto/2013

Apresentação. Fernando Lozano

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

CONSULTORIA REMOTA BANCO DE DADOS SQL SERVER

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos.

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

Apresentação. Objetivo. Público alvo. Dados Principais. Tecnologia Abordada Microsoft SQL Server 2012

Sistemas Operacionais. Conceitos de um Sistema Operacional

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

DF-e MANAGER 2.6 Pré-requisito de Instalação Novembro de 2015

SISTEMA GERENCIADOR DE BANCO DE DADOS

Webinar Introdução ao Puppet Enterprise

Alexandre Malveira, Wolflan Camilo

Zarziel Pereira. Resumo. Experiência. Analista de Banco de Dados e Middleware zarziel@gmail.com

Administração. Apresentação. Objetivo. Dados Principais. Tecnologia Abordada Administração de Banco de Dados SQL Server 2008 R2

Projeto de Redes Físico e Lógico. Prof. MSc. Jeferson Bussula Pinheiro

Como sobreviver com Java 2? Saulo Arruda

Agenda. A Empresa História Visão Conceito dos produtos

PROPOSTA COMERCIAL CLOUD SERVER

Prof. Marcelo Machado Cunha

SISTEMAS OPERACIONAIS

Desde de nascimento da empresa - a 4Linux sempre focou em grandes projetos de serviços que exigiam alta especialização em FOSS.

Introdução a CMMI. Paulo Ricardo Motta Gomes Renato Miceli Costa Ribeiro

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Benefícios estratégicos para sua organização. Características especiais. Benefícios. Gestão organizada e controle sobre as solicitações de suporte.

06/06/2013. O que é Software de Sistema? Sistema Operacional (SO) Tipos de Software de Sistema. Fatia de Mercado :: SO Desktop

Qualidade de Software

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

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

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Manual de Instalação PIMSConnector em Windows

Proposta Técnica. Desenvolvimento de software QUICKSITE

Fábio Giordani. Técnico em Processamento de Dados Adm. Análise de Sistemas. Outros cursos. Coordenador Projetos e Consultoria em Infraestrutura

Apresentação. I n o v a ç ã o e T e c n o l o g i a a o s e u a l c a n c e.

ANEXO 6 Critérios e Parâmetros de Pontuação Técnica

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

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

Parceiro Oficial de Treinamentos Zabbix no Brasil

CA Nimsoft Monitor Snap

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

Introdução à Banco de Dados. Definição

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

4 Estrutura do Sistema Operacional Kernel

Soluções Oracle. Serviços Oracle

Fábrica de Software 29/04/2015

Plano de Gerenciamento do Projeto

Uma poderosa ferramenta de monitoramento. Madson Santos - madson@pop-pi.rnp.br Técnico de Operação e Manutenção do PoP-PI/RNP

Gerência de Redes. Profa. Márcia Salomão Homci

SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO

Sistemas Operacionais

Gerenciamento de Problemas

Sistemas Operacionais

Transcrição:

Tuning de Servidores de Aplicação Java EE Fernando Lozano www.lozano.eti.br <fernando@lozano.eti.br> Arquiteto de Soluções Neki Technologies www.neki.com.br

Sobre o Autor Consultor com mais de 12 anos de atuação no desenvolvimento de sistemas e integração de redes Detentor de diversas certificações profissionais da Microsoft, Sun, IBM, Red Hat e LPI Autor do Livro Java em GNU/Linux Colunista da revista Java Magazine Colaborador do IBM dw e da NetBeans Magazine Ex-Conselheiro do Linux Professional Institute Webmaster da Free Software Foundation Community Manager do Java.Net Palestrante em eventos internacionais como JavaOne, FISLI, LinuxWorld Expo, Sun Tech Days e LatinoWare

Patrocinador Missão: Otimizar Resultados Especialista em soluções open source baseadas na plataforma Java Consultoria em Desenvolvimento e Infra-Estrutura de Sistemas Capacitação e Mentoring em Tecnologia e Processos

Parcerias Neki Truth Happens Gerenciamento de Riscos Soluções em Segurança e Biometria Professional Open Source

Agenda 1. Performance de Aplicações Java EE 2. Performance da JVM 3. Performance do Servidor Java EE 4. Monitoração

Performance de Aplicações Java EE Tradicionalmente, os desenvolvedores focam na performance da aplicação em si, que é afetada por diversos fatores: Qualidade dos frameworks Conhecimento de uso dos frameworks Escolha dos algoritmos Caches e pools de objetos Uso de stored procedures do banco de dados Eliminação de lógica redundante ou desnecessária

Profiling de Aplicações É a principal ferramenta para tuning de aplicações Depende de um processo de instrumentação do código O profiling identifica os métodos e classes onde a aplicação gasta mais tempo executando Mas tem algumas desvantagens: Muito pesado para o ambiente de produção Interferência com otimizações do JIT Necessidade de acesso aos fontes da aplicação

Performance da JVM Focada na redução do tempo gasto com a coleta de lixo (GC) ou na freqüência das coletas maiores Cada fornecedor de JVM (Sun, IBM, BEA) fornece documentação extensivo sobre o tuning do GC Hoje recursos como reflexão estão maduros o suficientes para deixarem de ser uma preocupação para o desenvolvedor de aplicações O Tuning do GC em geral expõe bugs da aplicação (leaks)

Threads Verdes x Nativas Alguns SOs são reconhecidamente incapazes de gerenciar quantidade quantidade de tarefas / processos / threads concorrentes, levando à duplicação desta funcionalidade dentro da própria JVM Entretanto nos SOs mais modernos (Linux, Solaris, Windows) o melhor desempenho em SMP é obtido com threads nativas Pode ser necessário rodar várias JVMs separadas para contornar limitações de volume (threads / heap)

Performance do Servidor Java EE O servidor de aplicações deve ser visto como uma coleção de serviços, cada qual necessitando de tuning individualizado O objetivo primário do tuning é evitar a contenção por recursos como: Threads de trabalho DataSources Instâncias de EJB

O Servidor Java EE como um Pipeline Conector / Listener Pool EJBs DataSources

O Servidor Java EE como um Pipeline (2) Conector / Listener DataSources Pool SLSBs A Pool SLSBs B Fila JMS Pool MDBs

Primeiro Abrir... 1. Estimar a quantidade de recursos em cada estágio de acordo com a previsão de usuários ou TPS 2. Dimensionar cada recurso para que tenha uma folga 3. Monitorar o uso de recursos do SO (CPU, memória, disco e rede), assim como o uso dos recursos em cada estágio do pipeline durante um teste de stress, aumentando a carga gradativamente 4. Se algum estágio ficar saturado, aumentar seus recursos e voltar ao passo 1

...Depois Fechar 5. Atingido um gargalho do SO, retornar os recursos do estágio relacionado ao patamar no estágio anterior 6. Reduzir os recursos no primeiro estágio do pipeline para manter a contenção fora do servidor de aplicações, não dentro A contenção dentro do servidor de aplicações diminui o throughput com a mesma carga de trabalho

Servidor Java EE x SO Conector / Listener Threads / FH / CPU Pool EJBs Memória / CPU DataSources Memória / FH / Rede

Parece Tuning de BD.. Verdade, os pools de threads / EJBs / DataSources de um servidor Java EE são análogos aos row buffers e sort buffers de um BD Relacional Entretanto um servidor Java EE tem uma quantidade potencialmente ilimitada de pools......além de maior quantidade de tipos de pools diferentes (JMS, SLSB, SFSB, MDB, etc)

O Servidor Java EE como Múltiplos Pipelines Conector / Listener Pool EJBs A Pool EJBs B DataSources A DataSources B DataSources C

Tuning É um Processo Interativo! Mudanças e sazonalidades nos padrões de uso da aplicação podem tornar um tuning obsoleto A quantidade de EJBs e DataSources em um mesmo servidor Java EE pode inviabilizar uma estimativa precisa da quantidade de recursos em cada estágio, tornando o tuning um processo de tentativa e erro Tenha sempre testes de stress automatizados e logs de acesso para validar os testes de stress

Como Medir a Contenção? Ferramentas do SO Sysstat (Unix) Performance Monitor (Windows) SNMP JMX JConsole JSR 77 MBeans do container Gateways HTTP / SNMP

Cuidado com os Logs! Podem prejudicar a performance porque: E/S é sempre bem mais lenta do que processamento Os arquivos e discos onde eles estão geram contenção Como melhorar: Nível ERROR ou SEVERE em produção Seletivamente em INFO para depuração Arquivos de log separados por componente / contexto Discos dedicados para logs

Perguntas? http://www.lozano.eti.br fernando@lozano.eti.br