Asserting bpftop: Streamlining eBPF efficiency optimization | by Netflix Know-how Weblog

By Jose Fernandez

As we speak, we’re thrilled to announce the discharge of bpftop, a command-line instrument designed to streamline the efficiency optimization and monitoring of eBPF packages. As Netflix more and more adopts eBPF [1, 2], making use of the identical rigor to those functions as we do to different managed providers is crucial. Putting a steadiness between eBPF’s advantages and system load is essential, guaranteeing it enhances quite than hinders our operational effectivity. This instrument permits Netflix to embrace eBPF’s potential.

bpftop supplies a dynamic real-time view of operating eBPF packages. It shows the typical execution runtime, occasions per second, and estimated complete CPU % for every program. This instrument minimizes overhead by enabling efficiency statistics solely whereas it’s lively.

bpftop simplifies the efficiency optimization course of for eBPF packages by enabling an environment friendly cycle of benchmarking, code refinement, and instant suggestions. With out bpftop, optimization efforts would require guide calculations, including pointless complexity to the method. With bpftop, customers can rapidly set up a baseline, implement enhancements, and confirm enhancements, streamlining the method.

A standout function of this instrument is its capability to show the statistics in time sequence graphs. This strategy can uncover patterns and traits that might be missed in any other case.

bpftop makes use of the BPF_ENABLE_STATS syscall command to allow world eBPF runtime statistics gathering, which is disabled by default to cut back efficiency overhead. It collects these statistics each second, calculating the typical runtime, occasions per second, and estimated CPU utilization for every eBPF program inside that pattern interval. This info is displayed in a top-like tabular format or a time sequence graph over a 10s transferring window. As soon as bpftop terminates, it turns off the statistics-gathering operate. The instrument is written in Rust, leveraging the libbpf-rs and ratatui crates.

Go to the undertaking’s GitHub page to be taught extra about utilizing the instrument. We’ve open-sourced bpftop underneath the Apache 2 license and sit up for contributions from the neighborhood.