Free — no signup required

Parca: The eBPF Specialist

2 min read

Architecture and Philosophy

Parca is an open-source continuous profiling system built by Polar Signals. Its core philosophy is that profiling should be automatic, always-on, and require zero application changes. It is heavily eBPF-first.

Components:

  • Parca Agent: Deployed as a DaemonSet on every Kubernetes node. Uses eBPF to collect CPU profiles from all processes. Handles stack unwinding using DWARF and frame pointer unwinding. Fetches debug symbols via debuginfod.
  • Parca Server: Receives profiles from agents, stores them efficiently using a columnar format optimized for time-series profile data, and serves the query API and UI.

Key capabilities:

  • Differential profiling: Compare two time windows side by side. Green bars = functions that got faster. Red bars = functions that got slower. This is invaluable for validating that a code change actually improved performance.
  • Label-based querying: Filter profiles by Kubernetes labels (namespace, pod, container). You can ask "show me the CPU profile for pods in the payments namespace during the last hour."
  • Automatic symbolization via debuginfod: Parca fetches debug symbols on demand from public symbol servers (for open-source software) or from your own internal debuginfod server. You do not need to manually ship symbols.

Deployment example (Helm): installing the parca server chart into its own namespace, then installing the parca-agent chart pointed at that server's remote-store address, is enough to get the whole stack running.

After deployment, the Parca UI is available at port 7070 on the server pod. You will immediately see profiles from all processes on all nodes — no application changes required.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free