SlideShare une entreprise Scribd logo
1  sur  21
X33EJA Výkonové Aspekty Java/JEE
Monitoring a optimalizace
Obsah prezentace



 I    Hlavní oblasti ovlivňující výkon Java/JEE


II    Proč monitorovat?


III   Nástroje pro monitoring


IV    Monitoring Glassfish


V     Otázky a odpovědi

                                                  2
Hlavní oblasti ovlivňující výkon Java/JEE



 Správa paměti

 Správa prostředků a zdrojů

 Optimalizace datové vrstvy

 Návrh a implementace




                                                       3
Hlavní oblasti ovlivňující výkon Java/JEE
              Správa paměti


 Nastavení JVM
   Optimalizace parametrů, GC Tuning
   -server -client
   -Xmx -Xms -Xss -XX:MaxPermSize
   http://java.sun.com/performance/reference/whitepapers/tuning.html

 Memory Leaks

 Optimalizace programu
   HTTP Session
   Object Pooling
   Caching



                                                                        4
Hlavní oblasti ovlivňující výkon Java/JEE
Správa paměti




                                            5
Hlavní oblasti ovlivňující výkon Java/JEE
            Správa prostředků a zdrojů


 Execution Threads
   Maximální počet paralelně zpracovávaných požadavků

 Pooling & Caching
   Connection Pool
   Thread Pool
   Instance Pool

 Clustering
   LoadBalancing, FailOver




                                                         6
Hlavní oblasti ovlivňující výkon Java/JEE
             Optimalizace datové vrstvy


 Výběr kvalitního JDBC driveru

 Správa zdrojů
   Connection Pool (min, max, validation, …)
   PreparedStatement, Statement Caching
   Instance Pool

 Databáze
   Analýza a optimalizace SQL
   Indexy
   Parametry databáze, update statistik




                                                         7
Hlavní oblasti ovlivňující výkon Java/JEE
           Návrh a implementace


 Využití asynchronních procesů
   JMS

 Minimalizace použití XML

 Využití cache
   Hibernate Second Level Cache
   Ehcache

 Minimalizace použití vzdáleného volání (Remoting)

 Pečlivý výběr knihoven třetích stran                8
Proč monitorovat?



 Zajištění dostupnosti aplikace
   Preemptivní X Reakční

 Odhalení performance problémů
   Testovací prostředí
   Produkční prostředí

 Analýza problémových stavů

 Reporting




                                   9
Nástroje pro monitoring
             Profiling X Monitoring


 Profiling X Monitoring

 Profiler
   Vývojářský nástroj
   Velký overhead

 Monitorovací nástroj
   Vhodný do testovacího i produkčního prostředí




                                                    10
Nástroje pro monitoring
            Základní funkce monitorovacího nástroje


 Nízký overhead

 Neovlivňování monitorované aplikace

 Kvalita poskytovaných metrik a efektivní práce

 Monitoring 24x7

 Snadná instalace a konfigurace

 Systém Alert - Action

 Reporty


                                                      11
Nástroje pro monitoring
            První pomoc


 Problémy s CPU
   Thread Dump

 Problémy s pamětí
   Heap Dump
      • -XX:+HeapDumpOnOutOfMemoryError
      • Analýza pomocí podpůrných nástrojů
   Různé oblasti paměti (Heap, Non-Heap)

 Problémy s využíváním ostatních zdrojů
   JMX metriky




                                             12
Nástroje pro monitoring
              JMX Standard


 JMX (Java Management Extensions)
    http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html
    Umožňuje přístup k aplikačním objektům
        • Nastavovat atributy
        • Volat metody, inicializovat aplikace nebo komponenty
    Možnost získávat statická data
    Registrovat události
    Atd...

 MC4J (http://sourceforge.net/projects/mc4j/)
    JMX Browser




                                                                                     13
Nástroje pro monitoring
               SUN JDK Tools


 jps (JVM Process Status Tool)
    list JVM process

 jstat (JVM Statistics Monitoring Tool)
    performance statistics about class loader, compiler, gc
    jstat –gcutil 1234 250 7

 jmap, jhat
    memory profiling, HeapDump
    jmap –dump:format=b,file=heap.bin 1234
    jhat -J-mx768m -stack false heap.bin

 jstack
    ThreadDump, Threads Stack Trace
    jstack 1234
                                                               14
Nástroje pro monitoring
              SUN JDK Tools


 jconsole (Java Monitoring and Management Console)
   Memory, Threads, Classes, MBeans
   http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html


 visualvm (All-in-One Java Troubleshooting Tool)
   http://visualvm.java.net/
   Modernější nástroj pro monitoring Java aplikací
   Obsahuje Profiler
   http://download.oracle.com/javase/6/docs/technotes/guides/visualvm/index.html
   http://pietrowski.info/2009/06/visualvm-performance-tuning-tool/
   jvisualvm in last java distribution




                                                                                         15
Nástroje pro monitoring
                Volně dostupné nástroje


 Log4j, SLF4j (http://www.slf4j.org/)

 SAP Memory Analyzer

 Memory Analyzer (http://www.eclipse.org/mat/)

 P6Spy, Iron Track SQL (http://sourceforge.net/projects/p6spy/)
    Monitoring JDBC rozhraní

 JIP (http://jiprof.sourceforge.net/)
    Profiler




                                                                   16
Nástroje pro monitoring
             Komerční nástroje


 CA Wily Introscope
    Java/JEE, .NET
    Real-Time Application Performance Monitoring (APM)
    Proaktivní detekce a diagnostika performance problémů
    Identifikace komponent a jejich závislostí

 HP Diagnostics

 APMXpert (http://www.opnet.com)

 DynaTrace (http://www.dynatrace.com)




                                                             17
Monitoring Glassfish



 Static JMX Service URL
   service:jmx:rmi:///jndi/rmi://localhost:8686/jmxrmi

 Monitoring Service
   Nastavitelné v „Admin Console“
   JVM, HTTP Service, Transaction Service, JMS Service, ORB, Web
    Container, EJB Container, JDBC Connection Pool, Thread Pool

 Application Server / Monitor
   Možnost jednoduchého prohlížení metrik přímo v „Admin Console“




                                                                     18
Monitoring Glassfish



 jconsole, visualvm
   Memory, CPU, Classes, Threads, Profiler
   JMX Metrics: root com.sun.appserv
      • jdbc-connection-pool
      • http-listener-1
      • keep-alive
      • connection-queue
      • …

 proprietary
   JMX Metric web viewer
   JMX Metric automatic store


                                              19
Otázky a odpovědi




      Otázky?



                    20
Děkuji za Vaši pozornost




                 Martin Ptáček
                 martin.ptacek@wincor-nixdorf.cz
                 +420 739 681 075

                 Wincor Nixdorf s.r.o.
                 Lužná 591, 160 00 Praha 6
                 http://www.wincor-nixdorf.cz



                                                   21

Contenu connexe

Similaire à 2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace

2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise AplikacíMartin Ptáček
 
Odborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileOdborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileProfinit
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisMartin Cerveny
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Jaroslav Prodelal
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2MarketingArrowECS_CZ
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Jaroslav Prodelal
 
2010 X33EJA Vysoká Dostupnost JEE Systémů
2010 X33EJA Vysoká Dostupnost JEE Systémů2010 X33EJA Vysoká Dostupnost JEE Systémů
2010 X33EJA Vysoká Dostupnost JEE SystémůMartin Ptáček
 
Jak zefektivnit vaši serverovou virtualizaci
Jak zefektivnit vaši serverovou virtualizaciJak zefektivnit vaši serverovou virtualizaci
Jak zefektivnit vaši serverovou virtualizaciMarketingArrowECS_CZ
 
Veeam Backup & Replication - Jaroslav Prodělal
Veeam Backup & Replication - Jaroslav ProdělalVeeam Backup & Replication - Jaroslav Prodělal
Veeam Backup & Replication - Jaroslav ProdělalJaroslav Prodelal
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariRoman Pichlík
 
Proč (ne)chceš použít Vaadin pro vývoj webové aplikace
Proč (ne)chceš použít Vaadin pro vývoj webové aplikaceProč (ne)chceš použít Vaadin pro vývoj webové aplikace
Proč (ne)chceš použít Vaadin pro vývoj webové aplikaceTomáš Bambas
 
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Jaroslav Prodelal
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automationOndřej Machulda
 
Selenium Webdriver - jOpenSpace 2015
Selenium Webdriver - jOpenSpace 2015Selenium Webdriver - jOpenSpace 2015
Selenium Webdriver - jOpenSpace 2015Michal Franc
 

Similaire à 2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace (20)

2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
Odborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileOdborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum Mobile
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
 
Qualys Application Programming Interface (API) (2011)
Qualys Application Programming Interface (API) (2011)Qualys Application Programming Interface (API) (2011)
Qualys Application Programming Interface (API) (2011)
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
 
2010 X33EJA Vysoká Dostupnost JEE Systémů
2010 X33EJA Vysoká Dostupnost JEE Systémů2010 X33EJA Vysoká Dostupnost JEE Systémů
2010 X33EJA Vysoká Dostupnost JEE Systémů
 
Jak zefektivnit vaši serverovou virtualizaci
Jak zefektivnit vaši serverovou virtualizaciJak zefektivnit vaši serverovou virtualizaci
Jak zefektivnit vaši serverovou virtualizaci
 
Veeam Backup & Replication - Jaroslav Prodělal
Veeam Backup & Replication - Jaroslav ProdělalVeeam Backup & Replication - Jaroslav Prodělal
Veeam Backup & Replication - Jaroslav Prodělal
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
Proč (ne)chceš použít Vaadin pro vývoj webové aplikace
Proč (ne)chceš použít Vaadin pro vývoj webové aplikaceProč (ne)chceš použít Vaadin pro vývoj webové aplikace
Proč (ne)chceš použít Vaadin pro vývoj webové aplikace
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
ASP.NET MVC a TDD
ASP.NET MVC a TDDASP.NET MVC a TDD
ASP.NET MVC a TDD
 
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
 
QualysGuard InfoDay 2012 - Virtual Appliance
QualysGuard InfoDay 2012 - Virtual ApplianceQualysGuard InfoDay 2012 - Virtual Appliance
QualysGuard InfoDay 2012 - Virtual Appliance
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
Selenium Webdriver - jOpenSpace 2015
Selenium Webdriver - jOpenSpace 2015Selenium Webdriver - jOpenSpace 2015
Selenium Webdriver - jOpenSpace 2015
 

2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace

  • 1. X33EJA Výkonové Aspekty Java/JEE Monitoring a optimalizace
  • 2. Obsah prezentace I Hlavní oblasti ovlivňující výkon Java/JEE II Proč monitorovat? III Nástroje pro monitoring IV Monitoring Glassfish V Otázky a odpovědi 2
  • 3. Hlavní oblasti ovlivňující výkon Java/JEE  Správa paměti  Správa prostředků a zdrojů  Optimalizace datové vrstvy  Návrh a implementace 3
  • 4. Hlavní oblasti ovlivňující výkon Java/JEE Správa paměti  Nastavení JVM  Optimalizace parametrů, GC Tuning  -server -client  -Xmx -Xms -Xss -XX:MaxPermSize  http://java.sun.com/performance/reference/whitepapers/tuning.html  Memory Leaks  Optimalizace programu  HTTP Session  Object Pooling  Caching 4
  • 5. Hlavní oblasti ovlivňující výkon Java/JEE Správa paměti 5
  • 6. Hlavní oblasti ovlivňující výkon Java/JEE Správa prostředků a zdrojů  Execution Threads  Maximální počet paralelně zpracovávaných požadavků  Pooling & Caching  Connection Pool  Thread Pool  Instance Pool  Clustering  LoadBalancing, FailOver 6
  • 7. Hlavní oblasti ovlivňující výkon Java/JEE Optimalizace datové vrstvy  Výběr kvalitního JDBC driveru  Správa zdrojů  Connection Pool (min, max, validation, …)  PreparedStatement, Statement Caching  Instance Pool  Databáze  Analýza a optimalizace SQL  Indexy  Parametry databáze, update statistik 7
  • 8. Hlavní oblasti ovlivňující výkon Java/JEE Návrh a implementace  Využití asynchronních procesů  JMS  Minimalizace použití XML  Využití cache  Hibernate Second Level Cache  Ehcache  Minimalizace použití vzdáleného volání (Remoting)  Pečlivý výběr knihoven třetích stran 8
  • 9. Proč monitorovat?  Zajištění dostupnosti aplikace  Preemptivní X Reakční  Odhalení performance problémů  Testovací prostředí  Produkční prostředí  Analýza problémových stavů  Reporting 9
  • 10. Nástroje pro monitoring Profiling X Monitoring  Profiling X Monitoring  Profiler  Vývojářský nástroj  Velký overhead  Monitorovací nástroj  Vhodný do testovacího i produkčního prostředí 10
  • 11. Nástroje pro monitoring Základní funkce monitorovacího nástroje  Nízký overhead  Neovlivňování monitorované aplikace  Kvalita poskytovaných metrik a efektivní práce  Monitoring 24x7  Snadná instalace a konfigurace  Systém Alert - Action  Reporty 11
  • 12. Nástroje pro monitoring První pomoc  Problémy s CPU  Thread Dump  Problémy s pamětí  Heap Dump • -XX:+HeapDumpOnOutOfMemoryError • Analýza pomocí podpůrných nástrojů  Různé oblasti paměti (Heap, Non-Heap)  Problémy s využíváním ostatních zdrojů  JMX metriky 12
  • 13. Nástroje pro monitoring JMX Standard  JMX (Java Management Extensions)  http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html  Umožňuje přístup k aplikačním objektům • Nastavovat atributy • Volat metody, inicializovat aplikace nebo komponenty  Možnost získávat statická data  Registrovat události  Atd...  MC4J (http://sourceforge.net/projects/mc4j/)  JMX Browser 13
  • 14. Nástroje pro monitoring SUN JDK Tools  jps (JVM Process Status Tool)  list JVM process  jstat (JVM Statistics Monitoring Tool)  performance statistics about class loader, compiler, gc  jstat –gcutil 1234 250 7  jmap, jhat  memory profiling, HeapDump  jmap –dump:format=b,file=heap.bin 1234  jhat -J-mx768m -stack false heap.bin  jstack  ThreadDump, Threads Stack Trace  jstack 1234 14
  • 15. Nástroje pro monitoring SUN JDK Tools  jconsole (Java Monitoring and Management Console)  Memory, Threads, Classes, MBeans  http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html  visualvm (All-in-One Java Troubleshooting Tool)  http://visualvm.java.net/  Modernější nástroj pro monitoring Java aplikací  Obsahuje Profiler  http://download.oracle.com/javase/6/docs/technotes/guides/visualvm/index.html  http://pietrowski.info/2009/06/visualvm-performance-tuning-tool/  jvisualvm in last java distribution 15
  • 16. Nástroje pro monitoring Volně dostupné nástroje  Log4j, SLF4j (http://www.slf4j.org/)  SAP Memory Analyzer  Memory Analyzer (http://www.eclipse.org/mat/)  P6Spy, Iron Track SQL (http://sourceforge.net/projects/p6spy/)  Monitoring JDBC rozhraní  JIP (http://jiprof.sourceforge.net/)  Profiler 16
  • 17. Nástroje pro monitoring Komerční nástroje  CA Wily Introscope  Java/JEE, .NET  Real-Time Application Performance Monitoring (APM)  Proaktivní detekce a diagnostika performance problémů  Identifikace komponent a jejich závislostí  HP Diagnostics  APMXpert (http://www.opnet.com)  DynaTrace (http://www.dynatrace.com) 17
  • 18. Monitoring Glassfish  Static JMX Service URL  service:jmx:rmi:///jndi/rmi://localhost:8686/jmxrmi  Monitoring Service  Nastavitelné v „Admin Console“  JVM, HTTP Service, Transaction Service, JMS Service, ORB, Web Container, EJB Container, JDBC Connection Pool, Thread Pool  Application Server / Monitor  Možnost jednoduchého prohlížení metrik přímo v „Admin Console“ 18
  • 19. Monitoring Glassfish  jconsole, visualvm  Memory, CPU, Classes, Threads, Profiler  JMX Metrics: root com.sun.appserv • jdbc-connection-pool • http-listener-1 • keep-alive • connection-queue • …  proprietary  JMX Metric web viewer  JMX Metric automatic store 19
  • 20. Otázky a odpovědi Otázky? 20
  • 21. Děkuji za Vaši pozornost Martin Ptáček martin.ptacek@wincor-nixdorf.cz +420 739 681 075 Wincor Nixdorf s.r.o. Lužná 591, 160 00 Praha 6 http://www.wincor-nixdorf.cz 21