SlideShare a Scribd company logo
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ą
JDD2015: Don’t Panic – Hitchhiker’s guide to the JVM monitoring - Wojciech Oczkowski
• 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”
JDD2015: Don’t Panic – Hitchhiker’s guide to the JVM monitoring - Wojciech Oczkowski
SO LONG
AND
THANKS
FOR ALL
THE FISH
Źródła obrazów: pixabay.com

More Related Content

PDF
7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...
PDF
JDD2015: Thorny path to Data Mining projects - Alexey Zinoviev
PDF
Introduction to type classes
PDF
The cats toolbox a quick tour of some basic typeclasses
PDF
Monads asking the right question
PDF
Category theory is general abolute nonsens
PDF
Architektura to nie bzdura
PDF
Javascript development done right
7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...
JDD2015: Thorny path to Data Mining projects - Alexey Zinoviev
Introduction to type classes
The cats toolbox a quick tour of some basic typeclasses
Monads asking the right question
Category theory is general abolute nonsens
Architektura to nie bzdura
Javascript development done right

Viewers also liked (10)

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

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ą
  • 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”
  • 20. SO LONG AND THANKS FOR ALL THE FISH Źródła obrazów: pixabay.com