SlideShare una empresa de Scribd logo
1 de 20
DON'T PANIC
HITCHHIKER'S GUIDE TO THE JVM MONITORING
O CZYM BĘDZIEMY MÓWIĆ
• Gdzie możemy napotkać problemy
• Jak diagnozować przyczyny problemów
• Jakich narzędzi użyć
• Jak ich użyć
KTO BĘDZIE MÓWIĆ?
GDZIE MIESZKAJĄ PROBLEMY?
GDZIE MIESZKAJĄ PROBLEMY?
Wycieki pamięci
Niewydajne algorytmy
Niewłaściwe
kolekcje
Niewydajny
model danych
GDZIE MIESZKAJĄ PROBLEMY?
Pule wątków
Pule połączeń
Cache
GDZIE MIESZKAJĄ PROBLEMY?
GC i
zarządzanie
pamięcią
JIT
Lock’i i
synchronizacja
GDZIE MIESZKAJĄ PROBLEMY?
Inne aplikacje
Konfiguracja
pamięci
I/O
GDZIE MIESZKAJĄ PROBLEMY?
Rzeczywista
ilość zasobów
Wydajność
dysków
Cache
procesora
Wydajność
pamięci
Wydajność i
latency sieci
GDZIE MIESZKAJĄ PROBLEMY?
Komunikacja
z systemami
zewnętrznymi
Komunikacja
z bazą danych
Komunikacja
z IDM
Komunikacja z
przeglądarką
• Szukanie problemów w kodzie dużej aplikacji
jest jak szukanie igły w stogu siana.
• Warto sięgnąć po narzędzia które poprowadzą
nas dokładnie do źródła problemu.
• Czasami problemy nie wynikają z kodu a z
konfiguracji całego otoczenia aplikacji.
WNIOSKI
NARZĘDZIA
NARZĘDZIA
• Monitorowanie systemu operacyjnego
• top
• vmstat
• iostat
• iotop
• strace
• pidstat
NARZĘDZIA
• Pamięć:
• jmap
• jhat
• Eclipse MAT
• GC:
• jstat
• gcviewer
• Kod:
• jstack
• TDA
• Profilery
• jcmd
• jinfo
• jconsole
• jvisualvm
• Java Mission Control
• APM:
• Dynatrace
• AppDynamics
• NewRelic
• Plumbr
• xrebel
• Monitorowanie JVM:
CZAS NA …
DEMO
PODSUMOWANIE
• Problemy nie wynikają jedynie z kodu.
• Szybka identyfikacja przyczyn problemów wymaga
sięgnięcia po właściwe narzędzia.
• W razie problemów sprawdź:
• Czy to problem SO (wysoki system time, wysoki iowait)? -
<vmstat, iostat, top>
• Czy to problem z GC i pamięcią ( częste FGC, wysokie zużycie
procesora, freeze aplikacji, OOM )? - <jstat, top, vmstat,
gcviewer, jvisualvm, jmap, mat>
• Czy to problem z Lockami ( duża ilość zblokowanych wątków w
zrzucie stosu wątków, niskie zużycie procesora )? - <jstack,
thread dump analyzer, jvisualvm, top, vmstat>
• Gdzie system spędza najwięcej czasu? ( profiler, zrzut stosu
wątków ) <jstack, jtop, jvisualvm, jprofiler, yourkit>
DODATKOWE INFORMACJE
• Kirk Pepperdine – „Live Java Performance
Troubleshooting”
https://vimeo.com/35387464
• Leonid Igolnik - "The dark art of performance tuning or
how to become a performance hero ..."
https://www.youtube.com/watch?v=dqg0R3gYGac
• Jarosław Pałka - Czterej jeźdźcy apokalipsy
https://www.youtube.com/watch?v=Mq9LT-gwQYU
• Scott Oaks – „Java Performance: The Definitive Guide -
Getting the Most Out of Your Code”
SO LONG
AND
THANKS
FOR ALL
THE FISH
Źródła obrazów: pixabay.com

Más contenido relacionado

Destacado

Real world gobbledygook
Real world gobbledygookReal world gobbledygook
Real world gobbledygookPawel Szulc
 
Introduction to type classes in 30 min
Introduction to type classes in 30 minIntroduction to type classes in 30 min
Introduction to type classes in 30 minPawel Szulc
 
Apache spark when things go wrong
Apache spark   when things go wrongApache spark   when things go wrong
Apache spark when things go wrongPawel Szulc
 
Know your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmKnow your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmPawel Szulc
 
Functional Programming & Event Sourcing - a pair made in heaven
Functional Programming & Event Sourcing - a pair made in heavenFunctional Programming & Event Sourcing - a pair made in heaven
Functional Programming & Event Sourcing - a pair made in heavenPawel Szulc
 
Testing and Testable Code
Testing and Testable CodeTesting and Testable Code
Testing and Testable CodePawel Szulc
 
Fun never stops. introduction to haskell programming language
Fun never stops. introduction to haskell programming languageFun never stops. introduction to haskell programming language
Fun never stops. introduction to haskell programming languagePawel Szulc
 
Apache spark workshop
Apache spark workshopApache spark workshop
Apache spark workshopPawel Szulc
 
Writing your own RDD for fun and profit
Writing your own RDD for fun and profitWriting your own RDD for fun and profit
Writing your own RDD for fun and profitPawel Szulc
 
Apache Spark 101 [in 50 min]
Apache Spark 101 [in 50 min]Apache Spark 101 [in 50 min]
Apache Spark 101 [in 50 min]Pawel Szulc
 

Destacado (10)

Real world gobbledygook
Real world gobbledygookReal world gobbledygook
Real world gobbledygook
 
Introduction to type classes in 30 min
Introduction to type classes in 30 minIntroduction to type classes in 30 min
Introduction to type classes in 30 min
 
Apache spark when things go wrong
Apache spark   when things go wrongApache spark   when things go wrong
Apache spark when things go wrong
 
Know your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmKnow your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvm
 
Functional Programming & Event Sourcing - a pair made in heaven
Functional Programming & Event Sourcing - a pair made in heavenFunctional Programming & Event Sourcing - a pair made in heaven
Functional Programming & Event Sourcing - a pair made in heaven
 
Testing and Testable Code
Testing and Testable CodeTesting and Testable Code
Testing and Testable Code
 
Fun never stops. introduction to haskell programming language
Fun never stops. introduction to haskell programming languageFun never stops. introduction to haskell programming language
Fun never stops. introduction to haskell programming language
 
Apache spark workshop
Apache spark workshopApache spark workshop
Apache spark workshop
 
Writing your own RDD for fun and profit
Writing your own RDD for fun and profitWriting your own RDD for fun and profit
Writing your own RDD for fun and profit
 
Apache Spark 101 [in 50 min]
Apache Spark 101 [in 50 min]Apache Spark 101 [in 50 min]
Apache Spark 101 [in 50 min]
 

Similar a JDD2015: Don’t Panic – Hitchhiker’s guide to the JVM monitoring - Wojciech Oczkowski

Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlSebastian Marek
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganTobias Koprowski
 
Budowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówBudowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówMichal Lukaszewski
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr BuckiPROIDEA
 
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza SzymonSadlo
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1Piotr Pawlak
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue TeamuPiotr Kaźmierczak
 
MCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - DiagnosticsMCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - DiagnosticsMarcin Daczkowski
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...Łukasz Grala
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...Future Processing
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
PHP. Praktyczne skrypty, które oszczędzą Twój czas
PHP. Praktyczne skrypty, które oszczędzą Twój czasPHP. Praktyczne skrypty, które oszczędzą Twój czas
PHP. Praktyczne skrypty, które oszczędzą Twój czasWydawnictwo Helion
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...jzielinski_pl
 

Similar a JDD2015: Don’t Panic – Hitchhiker’s guide to the JVM monitoring - Wojciech Oczkowski (20)

Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPl
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just Began
 
Budowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówBudowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworków
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
 
[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1
 
Dlaczego flopsar
Dlaczego flopsarDlaczego flopsar
Dlaczego flopsar
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
 
8
88
8
 
MCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - DiagnosticsMCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - Diagnostics
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
 
Sposoby na Hardware
Sposoby na HardwareSposoby na Hardware
Sposoby na Hardware
 
RSIM - Actina Solar
RSIM - Actina SolarRSIM - Actina Solar
RSIM - Actina Solar
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
PHP. Praktyczne skrypty, które oszczędzą Twój czas
PHP. Praktyczne skrypty, które oszczędzą Twój czasPHP. Praktyczne skrypty, które oszczędzą Twój czas
PHP. Praktyczne skrypty, które oszczędzą Twój czas
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
 

JDD2015: Don’t Panic – Hitchhiker’s guide to the JVM monitoring - Wojciech Oczkowski

  • 1. DON'T PANIC HITCHHIKER'S GUIDE TO THE JVM MONITORING
  • 2. O CZYM BĘDZIEMY MÓWIĆ • Gdzie możemy napotkać problemy • Jak diagnozować przyczyny problemów • Jakich narzędzi użyć • Jak ich użyć
  • 5. GDZIE MIESZKAJĄ PROBLEMY? Wycieki pamięci Niewydajne algorytmy Niewłaściwe kolekcje Niewydajny model danych
  • 6. GDZIE MIESZKAJĄ PROBLEMY? Pule wątków Pule połączeń Cache
  • 7. GDZIE MIESZKAJĄ PROBLEMY? GC i zarządzanie pamięcią JIT Lock’i i synchronizacja
  • 8. GDZIE MIESZKAJĄ PROBLEMY? Inne aplikacje Konfiguracja pamięci I/O
  • 9. GDZIE MIESZKAJĄ PROBLEMY? Rzeczywista ilość zasobów Wydajność dysków Cache procesora Wydajność pamięci Wydajność i latency sieci
  • 10. GDZIE MIESZKAJĄ PROBLEMY? Komunikacja z systemami zewnętrznymi Komunikacja z bazą danych Komunikacja z IDM Komunikacja z przeglądarką
  • 11.
  • 12. • Szukanie problemów w kodzie dużej aplikacji jest jak szukanie igły w stogu siana. • Warto sięgnąć po narzędzia które poprowadzą nas dokładnie do źródła problemu. • Czasami problemy nie wynikają z kodu a z konfiguracji całego otoczenia aplikacji. WNIOSKI
  • 14. NARZĘDZIA • Monitorowanie systemu operacyjnego • top • vmstat • iostat • iotop • strace • pidstat
  • 15. NARZĘDZIA • Pamięć: • jmap • jhat • Eclipse MAT • GC: • jstat • gcviewer • Kod: • jstack • TDA • Profilery • jcmd • jinfo • jconsole • jvisualvm • Java Mission Control • APM: • Dynatrace • AppDynamics • NewRelic • Plumbr • xrebel • Monitorowanie JVM:
  • 17. PODSUMOWANIE • Problemy nie wynikają jedynie z kodu. • Szybka identyfikacja przyczyn problemów wymaga sięgnięcia po właściwe narzędzia. • W razie problemów sprawdź: • Czy to problem SO (wysoki system time, wysoki iowait)? - <vmstat, iostat, top> • Czy to problem z GC i pamięcią ( częste FGC, wysokie zużycie procesora, freeze aplikacji, OOM )? - <jstat, top, vmstat, gcviewer, jvisualvm, jmap, mat> • Czy to problem z Lockami ( duża ilość zblokowanych wątków w zrzucie stosu wątków, niskie zużycie procesora )? - <jstack, thread dump analyzer, jvisualvm, top, vmstat> • Gdzie system spędza najwięcej czasu? ( profiler, zrzut stosu wątków ) <jstack, jtop, jvisualvm, jprofiler, yourkit>
  • 18. DODATKOWE INFORMACJE • Kirk Pepperdine – „Live Java Performance Troubleshooting” https://vimeo.com/35387464 • Leonid Igolnik - "The dark art of performance tuning or how to become a performance hero ..." https://www.youtube.com/watch?v=dqg0R3gYGac • Jarosław Pałka - Czterej jeźdźcy apokalipsy https://www.youtube.com/watch?v=Mq9LT-gwQYU • Scott Oaks – „Java Performance: The Definitive Guide - Getting the Most Out of Your Code”
  • 19.
  • 20. SO LONG AND THANKS FOR ALL THE FISH Źródła obrazów: pixabay.com