Fast and Safe Production Monitoring of JVM Applications with BPF Magic
summary
BPF + BCC tools attach to JVM static tracepoints and kernel events and produce aggregated results in-kernel instead of dumping massive perf files. Examples: using trace plus a perf-map-agent mapping resolves JIT symbols and pinpoints a call that forces System.gc; ustat shows ~800–900 GCs/sec; a custom MySQL-sniff tool plus dbslower finds the repeated get_product(97) call that sleeps ~2s; a perf packet test earlier produced ~19 MB/s of raw samples, showing why in-kernel aggregation matters.
AI-written summary · about
chapters (22)
- 0:00Introduction
- 0:45Agenda
- 1:33Static Trace Points
- 4:56Trace
- 10:00System GC
- 13:24Perf
- 14:24Whats wrong with Perf
- 16:08What is BPF
- 20:44Limitations of BPF
- 22:52BPF Tools
- 24:17Checklist
- 26:28Flame graphs
- 28:02Locking
- 30:17DBstat
- 32:14DB slower
- 33:27Database tracing
- 34:40My Sequel Sniff
- 36:19Garbage Collections
- 40:27Example
- 43:03Conclusion
- 43:52References
- 44:03Outro
related talks
27mLow-Overhead Tracing Using eBPF for Observability into Kubernetes Apps and Services
36mObservability and performance analysis with BPF
21mPerformance Wins with BPF: Getting Started
45mPerformance lab. The power of the perf tool!
46mbpftrace internals
21mUsing eBPF Off-CPU Sampling to See What Your DBs are Waiting For
31mFantastic tracepoints and where to find them
37mAdvanced Performance Profiling Using Perf Tools
