
Display HN: Wachy – A UI for eBPF-essentially essentially essentially based performance debugging
Hint arbitrary compiled binaries and ideas on Linux, at runtime with 0 modifications.
-
Low overhead dynamic instrumentation
-
Wachy uses the magic of eBPF to dynamically instrument binaries with minimal overhead. This also potential
there might be 0 overhead for untraced ideas. -
Deep code integration
-
eBPF on its possess will also be refined and time-ingesting to make exercise of. The purpose of wachy is to get userspace
eBPF tracing 10-100x faster and simpler by connecting it support to your supply code. -
Realize steady latencies
-
Stack sampling profilers entirely provide share of the image as they normally show the percentage of
packed with life CPU cycles.
With wachy, you ranking right impartial latencies including time spent in in sort blocking calls admire
ready on community, IO or mutexes.
It’ll also win latency histograms. -
Primary runtime filtering
- Add filters for stipulations you prefer to ticket. At runtime and not using a code modifications. eBPF finally is magic.
Glimpse a 3 minute demo of wachy:
This is the particular formulation to understand wachy. But for many who win reading,
scrutinize on the manual.
What is it factual for?
-
In most cases accomplished ideas
-
The wachy interface displays moderate latency of every tracepoint, or the latency histogram of a
impartial.
Whereas you’ve something admire an RPC or web server with frequent requests, this works marvelous for
conception latency, down to the stage of person ideas. -
Interactive debugging with filtering
-
Wachy maintains a stack of ideas being traced, which lends itself successfully to iterative exploration of
nested ideas.
You may specify custom filters.
Are looking to totally opinion the latency of impartial B called from impartial A the place A’s first argument is 0? No
roar of affairs. -
Working out tail latencies
-
Wachy enables specifying runtime filters to understand program habits below a possibility of stipulations.
Shall we embrace, the place is the time spent inner a impartial when it takes longer than 100ms to retain out? -
Debugging in manufacturing
-
There’s normally some performance roar of affairs which entirely happens in manufacturing.
And yeah, certain you follow the general most attention-grabbing practices however normally the particular formulation to debug it is correct to ranking
in there and seek for at what’s going on stay.
eBPF guarantees that any tracing you create is entirely good (I’m you, gdb) with the entirely
side elevate out being minor tracing overhead.
Wachy’s TUI is designed with this exercise case in mind – there might be now not any need to forward ports, all you’d like is
an SSH connection to the machine you prefer to debug on. -
Debugging on arbitrary platforms
- Obligatory eBPF ideas are entirely on hand on Linux 4.6 or later kernels.
-
Debugging arbitrary languages
-
Wachy relies on eBPF uprobes and debugging symbols, which entirely work for compiled languages.
C++ symbol demangling for showing human-readable impartial names will likely be supported. -
Debugging extremely latency-honest
code -
Whereas eBPF overhead is rather low, there might be just a few overhead – in my measurements, about 3μs per traced
impartial call.
For ideas that buy less time than that and are continuously called, this can even be unacceptable and
wachy’s precision aren’t factual ample.