2009 X33EJA Výkonové Aspekty JEE

687 views
617 views

Published on

2009 X33EJA Výkonové Aspekty JEE

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
687
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2009 X33EJA Výkonové Aspekty JEE

  1. 1. X33EJA Výkonové aspekty JEE, monitoring a optimalizace Martin Ptáček , KOMIX s.r.o. ptacek @komix.cz
  2. 2. Obsah prezentace Hlavní oblasti ovlivňující výkon Java/JEE Proč monitorovat? Základní funkce monitorovacího nástroje Nástroje pro monitoring + Live ukázka Otázky a odpovědi
  3. 3. <ul><li>Správa paměti </li></ul><ul><li>Správa prostředků a zdrojů </li></ul><ul><li>Optimalizace datové vrstvy </li></ul><ul><li>Návrh a implementace </li></ul>Hlavní oblasti ovlivňující výkon Java/JEE
  4. 4. <ul><li>Nastavení JVM </li></ul><ul><ul><li>Optimalizace parametrů, GC tuning </li></ul></ul><ul><li>Memory Leaks </li></ul><ul><li>Optimalizace programu </li></ul><ul><ul><li>Velikost HTTP Session </li></ul></ul><ul><ul><li>Object Pooling </li></ul></ul><ul><ul><li>Thread Pooling </li></ul></ul><ul><ul><li>Caching </li></ul></ul>Hlavní oblasti ovlivňující výkon Java/JEE Správa paměti
  5. 5. Hlavní oblasti ovlivňující výkon Java/JEE Správa paměti - Heap
  6. 6. <ul><li>Execution Threads </li></ul><ul><ul><li>Konfigurace webového serveru </li></ul></ul><ul><li>Pooling & Caching </li></ul><ul><ul><li>Connection Pool </li></ul></ul><ul><ul><li>Thread Pool </li></ul></ul><ul><ul><li>Instance Pool </li></ul></ul><ul><li>Clustering </li></ul><ul><ul><li>LoadBalancing, FailOver </li></ul></ul>Hlavní oblasti ovlivňující výkon Java/JEE Správa prostředků a zdrojů
  7. 7. <ul><li>Výběr kvalitního JDBC driveru </li></ul><ul><li>Správa zdrojů </li></ul><ul><ul><li>Connection Pool (nastavení, optimalizace, validita …) </li></ul></ul><ul><ul><li>PreparedStatement, Statement Caching </li></ul></ul><ul><li>Databáze </li></ul><ul><ul><li>Optimalizace a analýza SQL </li></ul></ul><ul><ul><li>Indexy </li></ul></ul><ul><ul><li>Parametry databáze, update statistik </li></ul></ul>Hlavní oblasti ovlivňující výkon Java/JEE Optimalizace datové vrstvy
  8. 8. <ul><li>Tvorba asynchronních procesů pomocí JMS </li></ul><ul><li>Minimalizace použití XML </li></ul><ul><li>Využití JEE Design Patterns </li></ul><ul><li>Využití cache pro sdílení dat zdrojů (EHCACHE) </li></ul><ul><li>Minimalizace použití vzdáleného rozhraní (Remoting) </li></ul><ul><li>Pečlivý výběr výkonných knihoven třetích stran </li></ul>Hlavní oblasti ovlivňující výkon Java/JEE Návrh a implementace
  9. 9. <ul><li>Profiling X Monitoring </li></ul><ul><li>Profiler </li></ul><ul><ul><li>Vývojářský nástroj, velký overhead </li></ul></ul><ul><li>Monitorovací nástroj </li></ul><ul><ul><li>Vhodný do testovacího i produkčního prostředí </li></ul></ul>Nástroje pro monitoring a profiling Profiling X Monitoring
  10. 10. <ul><li>Log4j http://logging.apache.org/log4j/ </li></ul><ul><li>SUN JDK Tools </li></ul><ul><ul><li>jconsole, jhat, jmap, jstack </li></ul></ul><ul><ul><li>visualvm https://visualvm.dev.java.net/ </li></ul></ul><ul><li>SAP Memory Analyzer </li></ul><ul><li>IBM Memory Analyzer http://www.eclipse.org/mat/ </li></ul><ul><li>P6Spy, Iron Track SQL http://www.p6spy.com/ </li></ul><ul><ul><li>Monitoring rozhraní JDBC </li></ul></ul>Nástroje pro monitoring a profiling Volně dostupné nástroje
  11. 11. <ul><li>JMX (Java Management Extensions) </li></ul><ul><ul><li>Umožňuje přístup k aplikačním objektům </li></ul></ul><ul><ul><li>Možnost nastavovat atributy </li></ul></ul><ul><ul><li>Možnost volat metody </li></ul></ul><ul><ul><ul><li>Inicializovat aplikace či komponenty </li></ul></ul></ul><ul><ul><li>Možnost získávat statistická data </li></ul></ul><ul><ul><li>Registrovat události </li></ul></ul><ul><ul><li>atd… </li></ul></ul><ul><li>MC4J http://mc4j.org/ </li></ul><ul><ul><li>JMX Browser </li></ul></ul>Nástroje pro monitoring a profiling JMX Standard
  12. 12. <ul><li>Problémy s CPU </li></ul><ul><ul><li>Thread Dump </li></ul></ul><ul><ul><ul><li>Generovat pomocí podpůrných nástrojů </li></ul></ul></ul><ul><li>Problémy s pamětí </li></ul><ul><ul><li>Jednotlivé oblasti paměti </li></ul></ul><ul><ul><ul><li>Heap, PermGen, </li></ul></ul></ul><ul><ul><li>Heap Dump </li></ul></ul><ul><ul><ul><li>Automaticky generovat při OOM (OutOfMemory) </li></ul></ul></ul><ul><ul><ul><li>Analyzovat pomocí podpůrných nástrojů </li></ul></ul></ul><ul><li>Problémy s využíváním ostatních zdrojů </li></ul><ul><ul><li>JMX Metriky aplikačního serveru </li></ul></ul>První pomoc
  13. 13. <ul><li>Zajištění dostupnosti aplikace </li></ul><ul><ul><li>Preemptivní X Reakční </li></ul></ul><ul><li>Odhalení performance problémů </li></ul><ul><ul><li>Testovací prostředí </li></ul></ul><ul><ul><li>Produkční prostředí </li></ul></ul><ul><li>Analýza problémových stavů </li></ul><ul><li>Reporting </li></ul>Proč monitorovat?
  14. 14. <ul><li>Nízký overhead </li></ul><ul><li>Neovlivňování monitorované aplikace </li></ul><ul><li>Kvalita poskytovaných metrik (práce s metrikami) </li></ul><ul><li>Monitoring 24x7 </li></ul><ul><li>Snadná instalace a konfigurace </li></ul><ul><li>MemoryLeaks </li></ul><ul><li>Systém Alert – Action </li></ul><ul><li>Reporty </li></ul>Základní funkce monitorovacího nástroje
  15. 15. <ul><li>Real-time Application Performance Monitoring (APM) </li></ul><ul><li>Enterprise aplikace Java a .NET </li></ul><ul><li>Proaktivní detekce a diagnostika performance problémů </li></ul><ul><li>Monitoring všech transakcí </li></ul><ul><li>Identifikace komponent a jejich závislostí </li></ul>Nástroje pro monitoring CA Wily Introscope
  16. 16. Otázky a odpovědi <ul><li>Otázky ? </li></ul>
  17. 17. Děkuji za vaši pozornost Martin Ptáček [email_address] +420 225 989 981 KOMIX s.r.o. Holubova 1, 150 00 Praha 5 www.komix.cz

×