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 台服务器的容量。"
人们不禁会想,如果使用删除字符会带来多大的节省。
好文章,需要你的鼓励
本文介绍了 Mastercard 推出的 Agent Pay,通过将 AI 搜索平台与支付系统整合,使用户无需切换窗口即可安全完成交易,同时利用代币化技术和大数据风控,实现企业级无缝支付。
Salesforce 最新研究发布多个企业级 AI 模型、数据集和测试平台,旨在提升 AI 在复杂业务场景中的一致性与可靠性,为企业提供实用、可信赖的智能工具。
Anthropic 推出可让 Claude 实时检索最新信息的 web 搜索 API,助力开发者构建定制 AI 应用,挑战传统搜索模式。
Stripe在年度大会上推出多款支付创新产品,包括基于亿级交易训练的AI模型提升反欺诈能力、稳定币多币卡以及多支付渠道管理工具,并快速协助 Nvidia 完成账单迁移,全面扩展全球支付方式。