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.

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

483 views

Published on

DON’T PANIC – HITCHHIKER’S GUIDE TO THE JVM MONITORING

Zdarzają się chwile, w których nawet najlepiej napisany system czy aplikacja odmawiają posłuszeństwa. Jak radzić sobie w kryzysowych sytuacjach? W jakie narzędzia się uzbroić? W prezentacji przedstawię przegląd narzędzi służących do monitorowania różnych aspektów działania wirtualnej maszyny Java wraz z praktycznymi przykładami ich wykorzystania.


Agenda:
1. Analiza miejsc stwarzających największe problemy w aplikacjach
2. Przegląd dostępnych narzędzi do wykrywania problemów
3. Demonstracja wykorzystania niektórych z narzędzi na przykładach
4. Podsumowanie w postaci dobrych rad

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. DON'T PANIC HITCHHIKER'S GUIDE TO THE JVM MONITORING
  2. 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ć
  3. 3. KTO BĘDZIE MÓWIĆ?
  4. 4. GDZIE MIESZKAJĄ PROBLEMY?
  5. 5. GDZIE MIESZKAJĄ PROBLEMY? Wycieki pamięci Niewydajne algorytmy Niewłaściwe kolekcje Niewydajny model danych
  6. 6. GDZIE MIESZKAJĄ PROBLEMY? Pule wątków Pule połączeń Cache
  7. 7. GDZIE MIESZKAJĄ PROBLEMY? GC i zarządzanie pamięcią JIT Lock’i i synchronizacja
  8. 8. GDZIE MIESZKAJĄ PROBLEMY? Inne aplikacje Konfiguracja pamięci I/O
  9. 9. GDZIE MIESZKAJĄ PROBLEMY? Rzeczywista ilość zasobów Wydajność dysków Cache procesora Wydajność pamięci Wydajność i latency sieci
  10. 10. GDZIE MIESZKAJĄ PROBLEMY? Komunikacja z systemami zewnętrznymi Komunikacja z bazą danych Komunikacja z IDM Komunikacja z przeglądarką
  11. 11. • 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
  12. 12. NARZĘDZIA
  13. 13. NARZĘDZIA • Monitorowanie systemu operacyjnego • top • vmstat • iostat • iotop • strace • pidstat
  14. 14. 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:
  15. 15. CZAS NA … DEMO
  16. 16. 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>
  17. 17. 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”
  18. 18. SO LONG AND THANKS FOR ALL THE FISH Źródła obrazów: pixabay.com

×