Saying bpftop: Streamlining eBPF efficiency optimization | by Netflix Expertise Weblog | Feb, 2024
Right this moment, we’re thrilled to announce the discharge of bpftop, a command-line device designed to streamline the efficiency optimization and monitoring of eBPF functions. 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 relatively than hinders our operational effectivity. This device allows Netflix to embrace eBPF’s potential.
bpftop offers 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 device minimizes overhead by enabling efficiency statistics solely whereas it’s energetic.
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 handbook calculations, including pointless complexity to the method. With bpftop, customers can shortly set up a baseline, implement enhancements, and confirm enhancements, streamlining the method.
A standout function of this device is its skill to show the statistics in time sequence graphs. This method can uncover patterns and tendencies that may very well 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 scale 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 device is written in Rust, leveraging the libbpf-rs and ratatui crates.
Go to the venture’s GitHub page to study extra about utilizing the device. We’ve open-sourced bpftop beneath the Apache 2 license and stay up for contributions from the neighborhood.