DB
Operations

Profiling

Profile a NYXDB engine with Tracy (instrumented), Parca, and Pyroscope (continuous eBPF).

When the engine is slow, hung, or contended, three complementary profilers cover gaps the others don't.

ToolKindProduction?Best at
TracyInstrumented, on-demandbuild-gatedZone timing and lock contention on the hot path
ParcaContinuous, eBPFyesOn-CPU and off-CPU flamegraphs, no code changes
PyroscopeContinuous, eBPFyesSame class as Parca, Grafana-native

Tracy

Tracy is an instrumented profiler: the engine emits zones and plots the code was annotated with (the NYXDB_ZONE* macros). It is off by default and zero-cost — the macros compile to nothing. Built with -DNYXDB_TRACY=ON, the client is compiled on-demand, so even an enabled build collects nothing until a Tracy viewer connects (default TCP 8086).

Tracy is instrumented engine-wide, including allocator-level memory profiling, which makes it the tool for lock-contention and "which lock is the flush thread parked on" investigations that SQL telemetry can't answer.

Parca & Pyroscope

Parca and Pyroscope are continuous eBPF profilers — they attach to the running process and produce on-CPU and off-CPU flamegraphs with no code changes, suitable for always-on production profiling.

In-engine query timing is also available without any external profiler: see system.queries for per-stage and per-operator µs, and system.traces for span timelines.

TODO-verify: Parca (P1) and Pyroscope (P2) setup are staged in the engine's profiling runbook; confirm the wiring for your deployment.

On this page