Diagnosing Problems in Java Applications
summary
A team built a JDK-based diagnostic module for Java backends to capture and analyze problems under load by periodically dumping thread stacks via the JVMTI interface to files. The module uses only JDK capabilities (configurable via Spring Boot but framework-agnostic), evolved from a complex Java 8 implementation to a simplified post-Java 9 design, and adds features for zero-config operation, flexible settings, JMX/REST control, file rotation, reload protection and error diagnostics to speed up bug localization and fix.
AI-written summary · about
chapters (36)
- 0:00Introduction
- 2:26Hard-to-reproduce bugs
- 3:30Hanging services problem
- 4:34What is a thread dump
- 5:38Manual thread dump
- 6:22Automatic heap dumps
- 8:50Automation issues
- 9:54Programmatic dumps
- 10:16Dump methods
- 12:03Implementing dumpers
- 13:07JVMTI method
- 14:13Settings and limits
- 15:16Dump monitoring and analysis
- 17:24IntelliJ analysis
- 18:28Extra module features
- 19:53Build system integration
- 21:59Settings and rotation
- 22:40Found bugs examples
- 23:02Deadlock in app
- 23:25Slow DNS
- 24:09Logger slowdown
- 24:55Exception handler bug
- 25:59Connection pooling issue
- 26:41Thread pool size
- 27:02Exception handler flaw
- 29:15Q&A
- 30:19Performance impact
- 31:44Preventive use
- 32:48Dump collection
- 33:30Security monitoring
- 35:18Java agent capability
- 36:20Production security
- 37:47Deadlock and error rate
- 38:30Java Flight Recorder
- 40:26Profilers and performance
- 41:57Conclusion
related talks
53mServiceability in J9
45mA Healthy diet for your Java application
45mDebugging Production: No Re-deploys, No Downtime, No Risk
44mA Glance At The Java Performance Toolbox
43mA Glance At The Java Performance Toolbox
58mPractical Java Problem Solving: A Hands-On Guide to Debugging
49mTo JAR Hell And Back - A Live Migration to the Java 9 Module System
01h 28mThe dark art of performance tuning or how to become a performance hero ...
