Netflix 推出 bpftop 工具,优化 eBPF 程序性能
Netflix 最近宣布推出 bpftop,这是一个命令行工具,旨在增强 eBPF(扩展的 Berkeley 数据包过滤器)程序的优化和监控能力。bpftop 提供了运行中的 eBPF 程序的实时快照,显示诸如程序执行的平均时间、每秒处理的事件数量以及每个程序的总 CPU 使用率等指标。通过这一工具,Netflix 希望更好地利用 eBPF 的潜力。
工具功能与技术细节
bpftop 使用 BPF_ENABLE_STATS 命令开始收集 eBPF 程序的性能数据。为了确保系统运行流畅,数据收集在不使用时会被关闭。bpftop 收集这些数据并计算出有用的信息,以表格形式显示(类似于 top 命令)或作为每 10 秒更新一次的图表。当 bpftop 停止运行时,数据收集也会停止。该工具是用 Rust 编程语言开发的,使用了 libbpf-rs 和 ratatui 两个库来实现其功能。
工具的优势
bpftop 简化了 eBPF 程序性能优化的过程,通过提供基准测试、代码优化和即时反馈的循环,使整个过程更加高效。在没有 bpftop 的情况下,优化这些程序需要手动计算,而 bpftop 允许用户轻松设置基准、进行改进并确认这些改进。此外,bpftop 的一个重要功能是能够以图表形式显示统计数据,帮助用户发现模式和趋势。
eBPF 的背景与应用
eBPF 最初是 Berkeley Packet Filter 的缩写,但其功能已扩展到不仅仅是数据包过滤。如今,eBPF 被广泛应用于现代数据中心和云环境中的网络增强、负载平衡、提供详细的安全数据以及辅助开发者追踪应用程序等场景。尽管在 Linux 源代码中仍使用 BPF 这一术语,但在各种工具和文档中,BPF 和 eBPF 经常被互换使用。
Netflix 的 eBPF 实践
Netflix 已经通过 Vector 和 Flow Exporter sidecar 等工具将 eBPF 集成到其性能工程中。通过 bpftop,Netflix 希望在 eBPF 的优势与系统负载之间找到平衡。
社区反响
bpftop 的发布在技术社区中引起了广泛关注。Netflix 工程团队在 X.com 上的公告获得了 223 次转发和 1.2k 次点赞。Hacker News 上的讨论也显示了技术社区对该工具的高度认可。用户 bschuur 分享了他们在 eBPF 代码项目中使用 bpftop 的积极体验,强调了该工具的有效性。因此,bpftop 被认为是一个值得加入工具箱的重要工具。
开源与贡献
bpftop 已在 GitHub 上以 Apache 2 许可证开源,社区贡献受到欢迎。更多关于如何使用该工具的信息,读者可以访问 bpftop 的 GitHub 页面。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。