Szkolenie Apache Tomcat – Performance Tuning i JVM jest przeznaczone dla administratorów, inżynierów DevOps oraz programistów Java, którzy chcą świadomie analizować i optymalizować wydajność środowisk opartych na Apache Tomcat.
Podczas szkolenia uczestnicy poznają mechanizmy, które mają bezpośredni wpływ na wydajność serwera aplikacyjnego – od obsługi połączeń i pul wątków, przez konfigurację JVM i Garbage Collectora, aż po pule połączeń JDBC oraz diagnostykę problemów wydajnościowych. Szczególny nacisk położony jest na zrozumienie zależności pomiędzy konfiguracją Tomcat, zachowaniem aplikacji Java, zasobami systemowymi oraz bazą danych.
Szkolenie ma charakter praktyczny. Uczestnicy analizują typowe problemy występujące w środowiskach produkcyjnych, takie jak wzrost czasu odpowiedzi aplikacji, brak wolnych wątków, wyczerpanie puli połączeń JDBC, wysokie wykorzystanie CPU, problemy z pamięcią czy długie pauzy Garbage Collectora. Do diagnostyki wykorzystywane są m.in. thread dumpy, heap dumpy, Java Flight Recorder, Java Mission Control, VisualVM oraz narzędzia wchodzące w skład JDK.
Program obejmuje również współczesne mechanizmy dostępne w nowszych wersjach Java i Apache Tomcat, w tym Virtual Threads oraz ich zastosowanie w aplikacjach korzystających z blokującego I/O i baz danych.
Celem szkolenia „Apache Tomcat – Performance Tuning i JVM” jest nie tylko przedstawienie parametrów konfiguracyjnych, ale przede wszystkim nauczenie uczestników, jak mierzyć wydajność, identyfikować rzeczywiste wąskie gardła i podejmować właściwe decyzje dotyczące konfiguracji środowiska produkcyjnego Apache Tomcat.
Architektura wydajności Tomcat
- Connector → Executor → aplikacja → JDBC
- gdzie naprawdę powstają kolejki
- liczba requestów vs liczba wątków
- synchronizacja i blocking I/O
Thread pools
- `maxThreads`
- `minSpareThreads`
- `acceptCount`
- `maxConnections`
- shared Executor
- sizing thread poola
Virtual Threads
- `StandardVirtualThreadExecutor`
- kiedy virtual threads pomagają
- kiedy nie pomagają
- blocking I/O i JDBC
- porównanie platform threads / virtual threads
JVM
- heap
- metaspace
- stacks
- direct memory
- GC
- G1
- ZGC
- GC logs
- dobór `-Xms/-Xmx`
Diagnostyka
- thread dump
- heap dump
- JFR
- JMC
- VisualVM
- `jcmd`
- `jstack`
- `jstat`
JDBC
- Tomcat JDBC Pool
- DBCP
- HikariCP
- sizing connection poola
- abandoned connections
- connection validation
Warsztaty
- aplikacja działa wolno
- 100% CPU
- timeouty
- brak wolnych wątków
- wyczerpana pula JDBC
- GC pauses