Bpftop:Netflix 推出的 eBPF 程序性能监控和优化工具
Bpftop 是一款 Netflix 推出的用于简化 eBPF 程序性能优化和监控的命令行工具。随着 Netflix 越来越多地采用 eBPF,需要对这些应用程序进行严格的管理。
Bpftop 介绍
bpftop 提供了一个可以实时动态查看 eBPF 程序运行情况的界面。它可以显示每个程序的平均执行时间、每秒事件数和估算的 CPU 占用率。这个工具只在其运行时启用性能统计功能,以尽量减少对系统的开销。
bpftop 通过实现高效的基准测试、代码优化和即时反馈循环,简化了 eBPF 程序的性能优化。如果没有 bpftop,优化过程将需要手动计算,增加了不必要的复杂性。有了 bpftop,用户可以快速建立基线,进行改进,并验证优化效果,从而简化了整个流程。
这款工具的一个亮点是它能够以时间序列图的形式展示统计数据。这种展示方式可以揭示其他方法可能错过的模式和趋势。
工作原理
bpftop 使用 BPF_ENABLE_STATS 系统调用命令来启用全局 eBPF 运行时统计数据收集,该功能默认是禁用的以减少性能开销。它每秒收集一次这些统计数据,计算每个 eBPF 程序在该样本周期内的平均执行时间、每秒事件数和估算的 CPU 利用率。这些信息可以以类似 top 的表格格式或者在 10 秒移动窗口的时间序列图中显示出来。一旦 bpftop 终止,它会关闭统计数据收集功能。该工具用 Rust 编写,利用了 libbpf-rs 和 ratatui 的 crates。