Meta 通过 eBPF 技术实现服务器计算效率提升 20%

Meta公司通过使用基于eBPF的Strobelight性能分析套件,成功将其主要服务的CPU使用率降低20%。这一成果不仅大幅减少了服务器需求,还展示了eBPF在系统优化和效率提升方面的巨大潜力。eBPF作为一种创新技术,正在revolutionizing操作系统内核级编程,为企业带来显著的性能提升和成本节约。

Meta 表示,通过使用基于开源 eBPF 项目的 Strobelight 性能分析编排套件,成功将其核心服务的 CPU 使用周期减少了 20%。

对于这家以规模化用户变现为主营业务的公司来说,这一优化意味着运营 Facebook、Instagram、WhatsApp 以及元宇宙相关业务所需的服务器数量减少了 10% 到 20%。

eBPF 目前已不再是某个缩写的代称。虽然它最初代表"扩展伯克利数据包过滤器" (extended Berkeley Packet Filter),但随着其功能范围的不断扩展,这个缩写已经超越了其最初的含义。

这个拥有独立基金会的开源软件,为 Linux (以及正在开发中的 Windows 版本) 提供了一种在操作系统内核中运行沙盒程序的方法。这使得软件能够在特权内核环境中相对安全地运行,而无需构建和插入内核模块、将软件打包为驱动程序,或重新编译内核来添加所需功能。

在内核中运行对于服务优化特别有用,尤其是在大规模系统中,微小的性能瓶颈和低效问题都可能被放大,造成重大影响。在不影响性能的前提下,跨多个系统收集数据,并确保数据在不同内核版本间保持一致性和可解释性,这绝非易事。

Meta 开发的开源工具 Strobelight 可以协调各种使用 eBPF 的性能分析应用,用于收集可观测性数据——包括系统事件日志、性能度量指标和网络连接追踪等。其目标是提高基础设施效率,从而降低成本并获得运营优势。

Meta 软件工程师 Jordan Rome 在今年一月表示:"eBPF 允许安全地将自定义代码注入内核,这使得以极低开销收集各类数据成为可能,为可观测性领域带来了无限可能,很难想象没有它 Strobelight 要如何运作。"

Strobelight 目前包含 42 个不同的性能分析应用,这个数字颇具意义。这些分析工具可以测量内存使用、函数调用次数、各种编程语言中的事件、AI GPU 使用情况、服务请求延迟等指标。

正如 eBPF 基金会最近发布的 Meta 服务器节省案例研究中所述,仅通过一个字符的代码修改,就实现了相当于每年 15,000 台服务器容量的节省。

这个字符是一个 & 符号,但对 Meta 的财务人员来说,它的价值堪比美元符号。

根据 Rome 的说法:"一位经验丰富的性能工程师在查看 Strobelight 数据时发现,通过筛选特定的 std::vector 函数调用 (使用符号化的文件和行号),他可以识别出 C++ 中使用 'auto' 关键字时无意中产生的计算成本高昂的数组复制操作。"

在发现这个代价高昂的数组复制出现在 Meta 某个主要广告服务的路径中后,这位工程师确定这个向量复制并非有意为之。于是他在 auto 关键字后添加了一个 "&",将复制操作转换为引用,通过指向数据而不是复制数据来避免不必要的数据重复。

Rome 说:"这是一个单字符的提交,部署到生产环境后,估计每年可节省相当于 15,000 台服务器的容量。"

人们不禁会想,如果使用删除字符会带来多大的节省。

来源:The Register

0赞

好文章,需要你的鼓励

2025

03/10

20:40

分享

点赞

邮件订阅