Developing Continuous eBPF Profiler to look Beneath the Kernel to Beyond the Clouds
summary
Built a continuous profiler that uses parca-agent and eBPF to sample kernel and user stacks at 19 Hz sampling, shipping compact profiles every 10s to a server for symbolization. Implements DWARF/ELF-based unwind tables to handle stripped binaries, adds JIT/runtime support (V8, Python, Ruby) with a toy JIT to debug corner cases, and supports Arm64 and x86; overhead stays under ~1% (worst-case 4–5%). Notes kernel-version pitfalls and ongoing work to widen language coverage.
AI-written summary · about
chapters (13)
- 0:00Introduction to continuous eBPF profiler
- 2:07From contributor to profiler maintainer
- 6:16Discovering continuous profiling
- 7:41Introducing Icel graphs
- 9:27Architecture of Parca agent
- 11:37High resolution profiling explained
- 16:21From kernel to user space profiling
- 21:22User space discovery mechanisms
- 23:36Extracting unwinding information
- 29:48Kernel space eBPF sampling
- 32:01Supporting compilers and runtimes
- 33:25JIT runtime profiling challenges
- 34:31Cloud-native environment support
related talks
22mDWARFs and ELFs on the Cloud - eBPF Profiling Adventures in Observability at...
36mContinuous Profiling with Parca- Beneath the Kernel to Beyond...
38mAdvanced BPF profiling techniques: how to escape the curse of NMI and fetch ELF...
36mProfiling in the cloud-native era - Matthias Loibl
24mCommunity Driven Breakout Session: Continuous Profiling
56mContinuous Profiling the missing piece in your observability puzzle
36mContinuous Profiling in the Cloud-Native era
01h 13mContinuous Profiling: The Missing Piece in Your Observability Puzzle
