Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Performance em Aplicações Java Claudio Miranda Summa Technologies Conexão Java 2007
Objetivo Dicas para melhoria de performance em aplicações Java Aprenda técnicas e ferramentas para diagnosticar e resolver...
Objetivo <ul><li>As técnicas mostradas aqui são baseadas na experiência do autor, não necessariamente ela deve ser interpr...
Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li>...
Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li>...
Dicas em Performance <ul><li>Ajustes baseados em números </li></ul><ul><ul><li>Tx/s (média de transações por segundo) </li...
Dicas em Performance <ul><li>Ao lidar com performance, é um jogo de interesses com  flexibilidade  e  manutenção </li></ul...
Dicas em Performance <ul><li>Onde está o problema ?   Memória, CPU, disco, I/O, rede   Passos </li></ul><ul><ul><li>Diagnó...
Dicas em Performance <ul><li>Ajustes em código </li></ul><ul><ul><li>Microbenchmarks </li></ul></ul><ul><ul><li>Percepção ...
Dicas em Performance <ul><li>Concorrencia </li></ul><ul><ul><li>Use pool de threads </li></ul></ul><ul><ul><li>Diminuir o ...
Dicas em Performance <ul><li>void runServer() { </li></ul><ul><li>serverSocket = new ServerSocket(4444); </li></ul><ul><li...
Dicas em Performance <ul><li>Executor pool = Executors.newFixedThreadPool(10); </li></ul><ul><li>void runServer() { </li><...
Dicas em Performance <ul><li>Acesso a Banco de Dados </li></ul><ul><ul><li>Em atividades read-only (relatórios e consultas...
Dicas em Performance <ul><li>JVM </li></ul><ul><ul><li>Desabilitar o  security manager  em ambientes confiáveis </li></ul>...
Dicas em Performance <ul><li>I/O </li></ul><ul><ul><li>Remover System.out </li></ul></ul><ul><ul><li>Diminuir log  </li></...
Dicas em Performance <ul><li>Servidores de Aplicativos </li></ul><ul><ul><li>Colocar na inicialização, as tarefas de carga...
Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li>...
Heap -Xmx 2g
Heap <ul><li>Larga área de memória que armazena objetos e suas referências </li></ul><ul><li>É dividido em gerações </li><...
Heap -XX:MaxNewSize=256m -Xmx2g
Heap <ul><li>Geração Young </li></ul><ul><ul><li>Onde novos objetos são alocados  </li></ul></ul><ul><ul><li>A alocação de...
Heap -XX:MaxNewSize=256m -Xmx2g
Heap <ul><li>Geração Old </li></ul><ul><ul><li>Onde permanecem objetos cujas referências sobreviveram ao GC da área Young ...
Heap -XX:MaxNewSize=256m -Xmx2g -XX:MaxPermSize=128m
Heap <ul><li>Geração Permanente </li></ul><ul><ul><li>Pouca ação de GC </li></ul></ul><ul><ul><li>Armazena a estrutura das...
Heap <ul><li>Criação de objetos </li></ul>
Heap <ul><li>Ocorre um GC na área Young, quando não tem mais espaço </li></ul>
Heap <ul><li>Ocorre outro GC na área Young </li></ul>
Heap <ul><li>Outro GC ocorre, então objetos que contém referência são transportados para a área  Old </li></ul>
Heap <ul><li>Na área de memóra  Old  ocorrem </li></ul><ul><ul><li>Redimensionamento ( -Xms  ≠  -Xmx ) </li></ul></ul><ul>...
Heap <ul><li>Ergonomia (JDK 5 e 6) </li></ul><ul><ul><li>Dimensionamento automático das gerações </li></ul></ul><ul><ul><l...
Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li>...
Técnicas <ul><li>Resolvendo problemas de memória </li></ul><ul><ul><li>OutOfMemoryError (OOME) </li></ul></ul><ul><ul><li>...
Técnicas Cada técnica para diagnosticar problemas, tem um nível de intrusão no sistema, que pode variar entre um  rápido m...
Problemas de memória <ul><li>Como diagnosticar um OOME ? </li></ul><ul><ul><li>Olhe nos logs de aplicações </li></ul></ul>...
Problemas de memória <ul><li>Tipos de OOME </li></ul><ul><ul><li>Java heap space </li></ul></ul><ul><ul><li>PermGen space ...
Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Pouca memória física </li></ul...
Problemas de memória <ul><li>Monitoramento pelo sistema operacional </li></ul>top
Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Diagnóstico de memory leak, com monitoramento de GC </li></ul>
Problemas de memória <ul><li>Diagnóstico de memory leak com profiler </li></ul>
Problemas de memória <ul><li>Diagnóstico de memory leak com profiler </li></ul>
Problemas de memória <ul><li>Diagnóstico de memory leak com heap dump </li></ul>
Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Correção </li></ul><ul><ul><li>Aumente o tamanho do heap  <...
Problemas de memória <ul><li>PermGen space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Pouca memória disponível para a ...
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>Classloader leak </li></ul>
Problemas de memória <ul><li>PermGen space </li></ul><ul><li>Correção </li></ul><ul><ul><li>Aumente o tamanho da memória p...
Problemas de memória <ul><li>Out of swap space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Geralmente ocorre em código ...
Problemas de memória <ul><li>Unable to create new native thread </li></ul><ul><li>Causas </li></ul><ul><ul><li>Tamanho ele...
Problemas de memória <ul><li>Unable to create new native thread </li></ul><ul><li>Correção </li></ul><ul><ul><li>Diminuir ...
Problemas de memória <ul><li>E quando ocorre um crash no servidor ? </li></ul><ul><ul><li>Habilitar o dump de memória (hea...
Problemas de memória <ul><li>Outras ferramentas de suporte a monitoramento de memória </li></ul><ul><ul><li>vmstat </li></...
Problemas de memória <ul><li>Monitoramento pelo sistema operacional </li></ul><ul><li>vmstat </li></ul>
Problemas de memória <ul><li>pmap </li></ul>
Problemas de memória <ul><li>ulimit </li></ul>
Problemas de CPU <ul><li>Como diagnosticar consumo de CPU? </li></ul><ul><ul><li>Monitorar uso do sistema operacional </li...
Atividade do SO
Problemas de CPU <ul><li>Monitorar uso do sistema operacional </li></ul><ul><ul><li>Se o problema for da aplicação Java en...
Atividade do GC
 
Atividade do GC <ul><li>Correção </li></ul><ul><ul><li>Dimensionar as áreas de memória adequadamente </li></ul></ul><ul><u...
Problemas de CPU Verificar atividade de Threads
Comportamento das threads <ul><li>Causas </li></ul><ul><ul><li>Pobre gerenciamento de threads </li></ul></ul><ul><ul><ul><...
Comportamento das threads <ul><li>jstack </li></ul>
Comportamento das threads
Comportamento das threads
Comportamento das threads <ul><li>Uso do profiler implica </li></ul><ul><ul><li>Aplicação compilada em modo debug </li></u...
Ferramentas adicionais  para diagnóstico
Ferramentas para diagnóstico <ul><li>Outras ferramentas para diagnóstico </li></ul><ul><ul><li>mpstat, prstat, top, vmstat...
Ferramentas para diagnóstico <ul><li>Outras ferramentas para diagnóstico </li></ul><ul><ul><li>ldd </li></ul></ul><ul><ul>...
Ferramentas para diagnóstico <ul><li>Rede (unixes) </li></ul><ul><ul><li>Wireshark (Ethereal), tcpdump, snoop </li></ul></...
Ferramentas para diagnóstico
Ferramentas para diagnóstico
Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li>...
<ul><li>Servidor de Aplicativos </li></ul><ul><ul><li>Monitoramento de recursos </li></ul></ul><ul><ul><ul><li>Pool de con...
<ul><li>Servidor de Aplicativos </li></ul><ul><ul><li>Classloader </li></ul></ul><ul><ul><li>Carga dinâmica de aplicações ...
Dicas <ul><li>Seja cauteloso com informações obtidas </li></ul><ul><li>Não seja prematuro ao informar sobre onde está o pr...
Dicas <ul><li>Não entre em pânico </li></ul><ul><li>Conheça as ferramentas e como usá-las </li></ul><ul><li>Não dependa de...
Muito Obrigado Claudio Miranda [email_address] http://www.soujava.org.br http://www.summa-tech.com http://www.claudius.com...
Upcoming SlideShare
Loading in …5
×

Performance em Java

11,490 views

Published on

Palestra efetuada por Claudio Miranda no evento Conexão Java 2007
http://www.claudius.com.br

Published in: Technology
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Performance em Java

  1. 1. Performance em Aplicações Java Claudio Miranda Summa Technologies Conexão Java 2007
  2. 2. Objetivo Dicas para melhoria de performance em aplicações Java Aprenda técnicas e ferramentas para diagnosticar e resolver problemas de desempenho em um ambiente Java
  3. 3. Objetivo <ul><li>As técnicas mostradas aqui são baseadas na experiência do autor, não necessariamente ela deve ser interpretada como uma receita de bolo unicamente </li></ul>
  4. 4. Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li></ul><ul><li>Técnicas e ferramentas para diagnóstico </li></ul><ul><li>Dicas </li></ul>
  5. 5. Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li></ul><ul><li>Técnicas e ferramentas para diagnóstico </li></ul><ul><li>Dicas </li></ul>
  6. 6. Dicas em Performance <ul><li>Ajustes baseados em números </li></ul><ul><ul><li>Tx/s (média de transações por segundo) </li></ul></ul><ul><ul><li>Usuários concorrentes </li></ul></ul><ul><ul><li>Quantidade de sessões </li></ul></ul><ul><li>Armadilhas </li></ul><ul><ul><li>“O mais rápido possível” </li></ul></ul><ul><ul><li>“Está muito lento!” É necessário definir números de performance </li></ul></ul>
  7. 7. Dicas em Performance <ul><li>Ao lidar com performance, é um jogo de interesses com flexibilidade e manutenção </li></ul><ul><li>Refactoring com foco em performance </li></ul><ul><ul><li>TESTES ! </li></ul></ul>
  8. 8. Dicas em Performance <ul><li>Onde está o problema ? Memória, CPU, disco, I/O, rede Passos </li></ul><ul><ul><li>Diagnóstico </li></ul></ul><ul><ul><li>Priorização </li></ul></ul><ul><ul><li>Análise </li></ul></ul><ul><ul><li>Solução </li></ul></ul><ul><ul><ul><li>Marretada </li></ul></ul></ul><ul><ul><ul><li>Ideal </li></ul></ul></ul><ul><ul><li>Teste </li></ul></ul><ul><ul><li>Documentação </li></ul></ul>
  9. 9. Dicas em Performance <ul><li>Ajustes em código </li></ul><ul><ul><li>Microbenchmarks </li></ul></ul><ul><ul><li>Percepção do usuário final </li></ul></ul><ul><li>Ajustes de arquitetura </li></ul><ul><ul><li>O que é uma transação ? </li></ul></ul><ul><ul><ul><li>Tx JDBC </li></ul></ul></ul><ul><ul><ul><li>Tx Fila </li></ul></ul></ul><ul><ul><ul><li>Tx connector JCA </li></ul></ul></ul>
  10. 10. Dicas em Performance <ul><li>Concorrencia </li></ul><ul><ul><li>Use pool de threads </li></ul></ul><ul><ul><li>Diminuir o tamanho do stack (-Xss) </li></ul></ul><ul><ul><li>Use GC Paralelo </li></ul></ul><ul><ul><ul><li>Múltiplas CPU,multicore, múltiplas threads por core </li></ul></ul></ul><ul><ul><li>Aproveitar as classes Java nativas para sincronização e concorrência </li></ul></ul><ul><ul><ul><li>Pacote java.util.concurrency </li></ul></ul></ul><ul><ul><ul><li>Collections </li></ul></ul></ul><ul><ul><ul><li>Thread safety </li></ul></ul></ul>
  11. 11. Dicas em Performance <ul><li>void runServer() { </li></ul><ul><li>serverSocket = new ServerSocket(4444); </li></ul><ul><li>clientSocket = serverSocket.accept(); </li></ul><ul><li>new Thread(new ClientOperator(clientSocket)).start(); </li></ul><ul><li>} </li></ul><ul><li>class ClientOperator implements Runnable { </li></ul><ul><li>public void run() { </li></ul><ul><li>final int BUFFER = 128; </li></ul><ul><li>InputStream clientIn = clientRunner.getInputStream(); </li></ul>
  12. 12. Dicas em Performance <ul><li>Executor pool = Executors.newFixedThreadPool(10); </li></ul><ul><li>void runServer() { </li></ul><ul><li>serverSocket = new ServerSocket(4444); </li></ul><ul><li>clientSocket = serverSocket.accept(); </li></ul><ul><li>pool.execute(new ClientOperator(clientSocket)); </li></ul><ul><li>} </li></ul><ul><li>class ClientOperator implements Runnable { </li></ul><ul><li>public void run() { </li></ul><ul><li>final int BUFFER = 128; </li></ul><ul><li>InputStream clientIn = clientRunner.getInputStream(); </li></ul>
  13. 13. Dicas em Performance <ul><li>Acesso a Banco de Dados </li></ul><ul><ul><li>Em atividades read-only (relatórios e consultas) </li></ul></ul><ul><ul><ul><li>Usar um pool específico </li></ul></ul></ul><ul><ul><ul><li>Usar isolamento transacional menos restritivo </li></ul></ul></ul><ul><ul><li>Diminuir o isolamento transacional </li></ul></ul><ul><ul><li>Use JDBC puro para performance </li></ul></ul><ul><ul><li>Use PL/SQL para transformações de dados, exigindo alta performance em operações batch </li></ul></ul><ul><ul><li>Use cache e política para limpeza </li></ul></ul><ul><ul><li>Não usar o protocolo XA </li></ul></ul>
  14. 14. Dicas em Performance <ul><li>JVM </li></ul><ul><ul><li>Desabilitar o security manager em ambientes confiáveis </li></ul></ul><ul><ul><li>Desabilitar a verificação de classes </li></ul></ul><ul><ul><ul><li>-Xnoverify </li></ul></ul></ul><ul><ul><li>GC </li></ul></ul><ul><ul><ul><li>JDK > 5: Desabilitar o verbose GC, usar jstat </li></ul></ul></ul><ul><ul><ul><li>Usar algoritmos paralelos em máquinas multiprocessadas e multicore </li></ul></ul></ul><ul><ul><ul><ul><li>-XX:+UseParallelGC </li></ul></ul></ul></ul><ul><ul><ul><ul><li>-XX:+UseParallelOldGC </li></ul></ul></ul></ul>
  15. 15. Dicas em Performance <ul><li>I/O </li></ul><ul><ul><li>Remover System.out </li></ul></ul><ul><ul><li>Diminuir log </li></ul></ul><ul><ul><li>Usar if (log.isDebugEnabled()); para evitar concatenação de strings </li></ul></ul><ul><ul><li>Usar java.io.Externalizable para serialização </li></ul></ul><ul><ul><li>Usar buffers e java.io.BufferedInputStream </li></ul></ul>
  16. 16. Dicas em Performance <ul><li>Servidores de Aplicativos </li></ul><ul><ul><li>Colocar na inicialização, as tarefas de carga, parsing, pré-compilação, etc. </li></ul></ul><ul><ul><ul><li>Problema: deploymen e inicialização demorado </li></ul></ul></ul><ul><ul><ul><li>Benefício: runtime é rápido </li></ul></ul></ul><ul><ul><li>Ajustes </li></ul></ul><ul><ul><ul><li>Acceptor threads, pool, timeout, http queue, NIO, EJB commit-option, http session tuning </li></ul></ul></ul>
  17. 17. Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li></ul><ul><li>Técnicas e ferramentas para diagnóstico </li></ul><ul><li>Dicas </li></ul>
  18. 18. Heap -Xmx 2g
  19. 19. Heap <ul><li>Larga área de memória que armazena objetos e suas referências </li></ul><ul><li>É dividido em gerações </li></ul><ul><ul><li>Geração Young (ou New ou Eden) </li></ul></ul><ul><ul><li>Geração Old (Tenured) </li></ul></ul><ul><ul><li>Geração Permanente (PermGem) </li></ul></ul><ul><li>O GC ocorre apenas quando a geração não tem espaço para alocação de novos objetos </li></ul><ul><li>Automaticamente remove objetos da memória que não possuem referência </li></ul><ul><li>Possui diferentes algoritmos de GC </li></ul>
  20. 20. Heap -XX:MaxNewSize=256m -Xmx2g
  21. 21. Heap <ul><li>Geração Young </li></ul><ul><ul><li>Onde novos objetos são alocados </li></ul></ul><ul><ul><li>A alocação de memória é de curta duração </li></ul></ul><ul><ul><li>Objetos que não possuem referência são removidos pelo GC </li></ul></ul><ul><ul><li>GC ocorre com mais frequência </li></ul></ul><ul><ul><li>Tamanho pequeno </li></ul></ul>private String name = “Bruce Lee”; public Result consumidor (Long id) { Result r = processar(id); return r; }
  22. 22. Heap -XX:MaxNewSize=256m -Xmx2g
  23. 23. Heap <ul><li>Geração Old </li></ul><ul><ul><li>Onde permanecem objetos cujas referências sobreviveram ao GC da área Young </li></ul></ul><ul><ul><li>Objetos de longa duração </li></ul></ul><ul><ul><li>GC ocorre com menor frequência </li></ul></ul><ul><ul><li>Tamanho superior à área Young </li></ul></ul><ul><ul><li>Exemplos: </li></ul></ul><ul><ul><ul><li>Atributos estáticos, final, Singleton </li></ul></ul></ul>public static String name = “Bruce Lee”; public final Map cache = new HashMap(); private static Loader singleton = new Loader();
  24. 24. Heap -XX:MaxNewSize=256m -Xmx2g -XX:MaxPermSize=128m
  25. 25. Heap <ul><li>Geração Permanente </li></ul><ul><ul><li>Pouca ação de GC </li></ul></ul><ul><ul><li>Armazena a estrutura das classes </li></ul></ul><ul><ul><li>Armazena informações de reflexão </li></ul></ul><ul><ul><li>Objetos de origem nativa (JNI) </li></ul></ul><ul><ul><li>Não participa do heap ( -Xmx ) </li></ul></ul>
  26. 26. Heap <ul><li>Criação de objetos </li></ul>
  27. 27. Heap <ul><li>Ocorre um GC na área Young, quando não tem mais espaço </li></ul>
  28. 28. Heap <ul><li>Ocorre outro GC na área Young </li></ul>
  29. 29. Heap <ul><li>Outro GC ocorre, então objetos que contém referência são transportados para a área Old </li></ul>
  30. 30. Heap <ul><li>Na área de memóra Old ocorrem </li></ul><ul><ul><li>Redimensionamento ( -Xms ≠ -Xmx ) </li></ul></ul><ul><ul><li>Compactação (desfragmentação) </li></ul></ul><ul><ul><li>Larga área de memória para ser monitorada </li></ul></ul><ul><ul><li>GC ocorre de acordo com a política do algorítmo </li></ul></ul>Old
  31. 31. Heap <ul><li>Ergonomia (JDK 5 e 6) </li></ul><ul><ul><li>Dimensionamento automático das gerações </li></ul></ul><ul><ul><li>Baseado nas informações </li></ul></ul><ul><ul><ul><li>Sistema Operacional </li></ul></ul></ul><ul><ul><ul><li>Versão da JVM </li></ul></ul></ul><ul><ul><ul><li>Quantidade de Memória RAM </li></ul></ul></ul><ul><ul><ul><li>Quantidade de processadores </li></ul></ul></ul><ul><ul><ul><li>Tipo do processador (Sparc) </li></ul></ul></ul>
  32. 32. Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li></ul><ul><li>Técnicas e ferramentas para diagnóstico </li></ul><ul><li>Dicas </li></ul>
  33. 33. Técnicas <ul><li>Resolvendo problemas de memória </li></ul><ul><ul><li>OutOfMemoryError (OOME) </li></ul></ul><ul><ul><li>Outros problemas em geral </li></ul></ul><ul><li>Resolvendo problemas de CPU </li></ul><ul><ul><li>Uso intensivo de CPU e threads </li></ul></ul><ul><ul><li>Garbage Collector com frequência </li></ul></ul><ul><ul><li>Outros problemas em geral </li></ul></ul>
  34. 34. Técnicas Cada técnica para diagnosticar problemas, tem um nível de intrusão no sistema, que pode variar entre um rápido monitoramento no sistema ou um profiler e debug no sistema. Essa é a chave que irá determinar o tempo para resolução do problema
  35. 35. Problemas de memória <ul><li>Como diagnosticar um OOME ? </li></ul><ul><ul><li>Olhe nos logs de aplicações </li></ul></ul><ul><ul><li>Monitore o comportamento </li></ul></ul><ul><ul><ul><li>jmap, jstack, visualgc, jconsole, log do GC </li></ul></ul></ul><ul><ul><li>Verifique qual a causa do OOME </li></ul></ul>
  36. 36. Problemas de memória <ul><li>Tipos de OOME </li></ul><ul><ul><li>Java heap space </li></ul></ul><ul><ul><li>PermGen space </li></ul></ul><ul><ul><li>Out of swap space </li></ul></ul><ul><ul><li>unable to create new native thread </li></ul></ul>Exception in thread &quot;main&quot; java.lang.OutOfMemoryError: Java heap space at ConsumeHeap$BigObject.<init>(ConsumeHeap.java:22) at ConsumeHeap.main(ConsumeHeap.java:41)
  37. 37. Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Pouca memória física </li></ul></ul><ul><ul><ul><li>Monitoramento pelo SO: prstat, top, vmstat, mpstat </li></ul></ul></ul><ul><ul><li>Baixo valor do heap </li></ul></ul><ul><ul><ul><li>Tanto Young (-XX:MaxNewSize) e Old (-Xmx) </li></ul></ul></ul><ul><ul><li>Retenção de objetos (memory leak) </li></ul></ul><ul><ul><ul><li>Monitorar com jconsole ou gcviewer , a evolução do GC </li></ul></ul></ul><ul><ul><ul><li>Uso de profiler para monitorar objetos retidos em cada invocação do GC </li></ul></ul></ul>
  38. 38. Problemas de memória <ul><li>Monitoramento pelo sistema operacional </li></ul>top
  39. 39. Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Diagnóstico de memory leak, com monitoramento de GC </li></ul>
  40. 40. Problemas de memória <ul><li>Diagnóstico de memory leak com profiler </li></ul>
  41. 41. Problemas de memória <ul><li>Diagnóstico de memory leak com profiler </li></ul>
  42. 42. Problemas de memória <ul><li>Diagnóstico de memory leak com heap dump </li></ul>
  43. 43. Problemas de memória <ul><li>Java heap space </li></ul><ul><li>Correção </li></ul><ul><ul><li>Aumente o tamanho do heap </li></ul></ul><ul><ul><ul><li>Tanto Young (-XX:MaxNewSize) e Old (-Xmx) </li></ul></ul></ul><ul><ul><li>Memory leak </li></ul></ul><ul><ul><ul><li>Liberar as objetos alocados </li></ul></ul></ul><ul><ul><ul><li>Normalmente são coleções com finalidade de cache </li></ul></ul></ul><ul><ul><li>Aumentar a memória física da máquina </li></ul></ul>
  44. 44. Problemas de memória <ul><li>PermGen space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Pouca memória disponível para a memória permanente </li></ul></ul><ul><ul><li>Classloader leak </li></ul></ul><ul><ul><ul><li>Ocorre quando um classloader será descartado, mas um objeto carregado por este classloader é referenciado por objetos fora deste classloader </li></ul></ul></ul>
  45. 45. Problemas de memória <ul><li>Classloader leak </li></ul>
  46. 46. Problemas de memória <ul><li>Classloader leak </li></ul>
  47. 47. Problemas de memória <ul><li>Classloader leak </li></ul>
  48. 48. Problemas de memória <ul><li>Classloader leak </li></ul>
  49. 49. Problemas de memória <ul><li>Classloader leak </li></ul>
  50. 50. Problemas de memória <ul><li>Classloader leak </li></ul>
  51. 51. Problemas de memória <ul><li>PermGen space </li></ul><ul><li>Correção </li></ul><ul><ul><li>Aumente o tamanho da memória permanente </li></ul></ul><ul><ul><ul><li>Geralmente ocorre quando é usado frameworks de geração de classes </li></ul></ul></ul><ul><ul><ul><li>-XX:MaxPermSize e -XX:PermSize </li></ul></ul></ul><ul><ul><li>Classloader leak </li></ul></ul><ul><ul><ul><li>Gerenciar a dependência dos objetos, para remover a referências dependentes </li></ul></ul></ul>
  52. 52. Problemas de memória <ul><li>Out of swap space </li></ul><ul><li>Causas </li></ul><ul><ul><li>Geralmente ocorre em código nativo (JNI) </li></ul></ul><ul><ul><ul><li>Geralmente invocado por alguma operação Java </li></ul></ul></ul><ul><ul><li>Falta de espaço na memória do SO </li></ul></ul><ul><li>Correção </li></ul><ul><ul><li>Aumentar memória física da máquina </li></ul></ul><ul><ul><li>Diminuir tamanho do heap do java </li></ul></ul>
  53. 53. Problemas de memória <ul><li>Unable to create new native thread </li></ul><ul><li>Causas </li></ul><ul><ul><li>Tamanho elevado do stack ( -Xss ) </li></ul></ul><ul><ul><li>Pouca memória disponível para o SO </li></ul></ul><ul><ul><ul><li>Pois cada thread em Java é mapeada para uma thread do SO ( native threads ) </li></ul></ul></ul><ul><ul><li>Pobre gerenciamento de threads </li></ul></ul>
  54. 54. Problemas de memória <ul><li>Unable to create new native thread </li></ul><ul><li>Correção </li></ul><ul><ul><li>Diminuir o tamanho do Stack ( -Xss ) </li></ul></ul><ul><ul><li>Aumentar memória física </li></ul></ul><ul><ul><li>Diminuir tamanho do heap, pois sobra espaço para o SO </li></ul></ul><ul><ul><li>Melhor gerenciamento de threads </li></ul></ul><ul><ul><ul><li>Usar pool de threads, disponível do Java 5 </li></ul></ul></ul>
  55. 55. Problemas de memória <ul><li>E quando ocorre um crash no servidor ? </li></ul><ul><ul><li>Habilitar o dump de memória (heap dump) </li></ul></ul><ul><ul><ul><li>-XX:+HeapDumpOnOutOfMemoryError </li></ul></ul></ul><ul><ul><ul><li>-XX:+HeapDumpOnCtrlBreak </li></ul></ul></ul><ul><ul><li>Analisar o dump gerado </li></ul></ul><ul><ul><ul><ul><li>O tamanho do dump gerado é proporcional ao tamanho do heap </li></ul></ul></ul></ul><ul><ul><ul><li>Heap roots e heap analyzer </li></ul></ul></ul><ul><ul><ul><li>SAP Memory Analyzer </li></ul></ul></ul><ul><ul><ul><li>jhat </li></ul></ul></ul>
  56. 56. Problemas de memória <ul><li>Outras ferramentas de suporte a monitoramento de memória </li></ul><ul><ul><li>vmstat </li></ul></ul><ul><ul><li>pmap </li></ul></ul><ul><ul><li>ulimit </li></ul></ul>
  57. 57. Problemas de memória <ul><li>Monitoramento pelo sistema operacional </li></ul><ul><li>vmstat </li></ul>
  58. 58. Problemas de memória <ul><li>pmap </li></ul>
  59. 59. Problemas de memória <ul><li>ulimit </li></ul>
  60. 60. Problemas de CPU <ul><li>Como diagnosticar consumo de CPU? </li></ul><ul><ul><li>Monitorar uso do sistema operacional </li></ul></ul><ul><ul><li>Verificar qual aplicação consome os recursos </li></ul></ul><ul><ul><li>Monitorar o GC </li></ul></ul><ul><ul><li>Monitorar as threads </li></ul></ul><ul><ul><li>Uso de profiler </li></ul></ul>
  61. 61. Atividade do SO
  62. 62. Problemas de CPU <ul><li>Monitorar uso do sistema operacional </li></ul><ul><ul><li>Se o problema for da aplicação Java então outro tipo de monitoramento é necessário </li></ul></ul>Verificar atividade de GC
  63. 63. Atividade do GC
  64. 65. Atividade do GC <ul><li>Correção </li></ul><ul><ul><li>Dimensionar as áreas de memória adequadamente </li></ul></ul><ul><ul><ul><li>Mesmo que não ocorra OOME, a frequencia do GC consome CPU exageradamente </li></ul></ul></ul><ul><ul><li>Parametrizar o comportamento da JVM </li></ul></ul><ul><ul><ul><li>Algoritmos de GC </li></ul></ul></ul>
  65. 66. Problemas de CPU Verificar atividade de Threads
  66. 67. Comportamento das threads <ul><li>Causas </li></ul><ul><ul><li>Pobre gerenciamento de threads </li></ul></ul><ul><ul><ul><li>Quantidade exagerada de threads </li></ul></ul></ul><ul><ul><ul><li>Não usar pool de threads </li></ul></ul></ul><ul><ul><li>Máquina insuficiente para processamento </li></ul></ul><ul><ul><li>Dead lock </li></ul></ul><ul><ul><ul><li>Dependência circular </li></ul></ul></ul><ul><ul><li>Pobre implementação da aplicação </li></ul></ul><ul><ul><ul><li>Processamento intenso de strings </li></ul></ul></ul><ul><ul><ul><li>Transformação de dados desnecessária </li></ul></ul></ul>
  67. 68. Comportamento das threads <ul><li>jstack </li></ul>
  68. 69. Comportamento das threads
  69. 70. Comportamento das threads
  70. 71. Comportamento das threads <ul><li>Uso do profiler implica </li></ul><ul><ul><li>Aplicação compilada em modo debug </li></ul></ul><ul><ul><li>Modificar as configurações da JVM para profiler </li></ul></ul><ul><ul><ul><li>Penaliza performance </li></ul></ul></ul><ul><ul><ul><li>Modifica o comportamento da JVM (modo interpretado) </li></ul></ul></ul><ul><ul><li>Console gráfico para análise on-line </li></ul></ul>
  71. 72. Ferramentas adicionais para diagnóstico
  72. 73. Ferramentas para diagnóstico <ul><li>Outras ferramentas para diagnóstico </li></ul><ul><ul><li>mpstat, prstat, top, vmstat, pmap </li></ul></ul><ul><ul><ul><li>Estatísticas de CPU e memória </li></ul></ul></ul><ul><ul><li>iostat </li></ul></ul><ul><ul><ul><li>Tráfego de I/O (rede e disco) </li></ul></ul></ul><ul><ul><li>pstack </li></ul></ul><ul><ul><ul><li>Stacktrace de processos </li></ul></ul></ul><ul><ul><li>strace, truss </li></ul></ul><ul><ul><ul><li>Rastreio de system calls </li></ul></ul></ul><ul><ul><li>ps, pstree, ptree </li></ul></ul><ul><ul><ul><li>Árvore de processos </li></ul></ul></ul>
  73. 74. Ferramentas para diagnóstico <ul><li>Outras ferramentas para diagnóstico </li></ul><ul><ul><li>ldd </li></ul></ul><ul><ul><ul><li>Árvore de dependências de bibliotecas </li></ul></ul></ul><ul><ul><li>dmesg </li></ul></ul><ul><ul><ul><li>Inicialização do kernel </li></ul></ul></ul><ul><ul><li>ulimit </li></ul></ul><ul><ul><ul><li>Limites de recursos do usuário </li></ul></ul></ul>
  74. 75. Ferramentas para diagnóstico <ul><li>Rede (unixes) </li></ul><ul><ul><li>Wireshark (Ethereal), tcpdump, snoop </li></ul></ul><ul><ul><ul><li>Análise de tráfego de rede </li></ul></ul></ul><ul><ul><li>dig, nslookup </li></ul></ul><ul><ul><ul><li>Resolução de nomes DNS </li></ul></ul></ul><ul><ul><li>netstat </li></ul></ul><ul><ul><ul><li>Status de conexões, tabelas de roteamento, etc </li></ul></ul></ul><ul><ul><li>lsof </li></ul></ul><ul><ul><ul><li>Estatísticas de uso de file descriptors </li></ul></ul></ul>
  75. 76. Ferramentas para diagnóstico
  76. 77. Ferramentas para diagnóstico
  77. 78. Agenda <ul><li>Performance em Aplicações e Ambiente </li></ul><ul><li>Compreensão básica do gerenciamento de memória </li></ul><ul><li>Técnicas e ferramentas para diagnóstico </li></ul><ul><li>Dicas </li></ul>
  78. 79. <ul><li>Servidor de Aplicativos </li></ul><ul><ul><li>Monitoramento de recursos </li></ul></ul><ul><ul><ul><li>Pool de conexões, threads </li></ul></ul></ul><ul><ul><li>Logs </li></ul></ul><ul><ul><ul><li>Níveis de log </li></ul></ul></ul><ul><ul><li>Keep-alive e pipeline </li></ul></ul><ul><ul><li>Classpath </li></ul></ul><ul><ul><li>Cluster </li></ul></ul><ul><ul><ul><li>Sincronização, I/O, rede </li></ul></ul></ul><ul><ul><li>Threads </li></ul></ul><ul><ul><ul><li>Acceptor, queue, pool, timeout </li></ul></ul></ul>Dicas
  79. 80. <ul><li>Servidor de Aplicativos </li></ul><ul><ul><li>Classloader </li></ul></ul><ul><ul><li>Carga dinâmica de aplicações </li></ul></ul><ul><ul><ul><li>Compilação de JSP, redeploy, autodeploy, auto discovery </li></ul></ul></ul><ul><ul><li>Gerenciamento de sessão </li></ul></ul><ul><ul><ul><li>HttpSession </li></ul></ul></ul><ul><ul><ul><li>Stateful Session Bean </li></ul></ul></ul>Dicas
  80. 81. Dicas <ul><li>Seja cauteloso com informações obtidas </li></ul><ul><li>Não seja prematuro ao informar sobre onde está o problema </li></ul><ul><li>Ter uma visão do contexto computacional </li></ul><ul><ul><li>Configuração de máquinas, sistema operacional, estrutura de rede, serviços, e dependências </li></ul></ul><ul><li>Compreender quais os serviços afetados e nível de importância </li></ul><ul><li>Conhecer as equipes envolvidas e seus responsáveis </li></ul>
  81. 82. Dicas <ul><li>Não entre em pânico </li></ul><ul><li>Conheça as ferramentas e como usá-las </li></ul><ul><li>Não dependa de consoles gráficos </li></ul><ul><li>Isole o problema </li></ul><ul><li>Tente confirmar todos os relatos </li></ul><ul><li>Ter acesso ao código fonte da aplicação </li></ul><ul><li>Ter a mão um bom decompilador (jad) </li></ul><ul><li>Verificar todos os arquivos de configurações </li></ul><ul><li>Ao confirmar o problema, já entregue a solução </li></ul>
  82. 83. Muito Obrigado Claudio Miranda [email_address] http://www.soujava.org.br http://www.summa-tech.com http://www.claudius.com.br

×