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 台服务器的容量。"
人们不禁会想,如果使用删除字符会带来多大的节省。
好文章,需要你的鼓励
本文探讨了人工智能(AI)可能带来的生存风险,强调了AI与人类价值观不一致所引发的潜在问题。尽管当前的AI系统并不具备意识,但它们的失控和意外后果已成为AI治理讨论的核心。企业高管们意识到AI的巨大潜力,同时也在思考如何应对这些风险。
量子计算领域正迎来关键时刻,微软、谷歌和IBM等巨头纷纷取得重大突破。微软发布Majorana 1芯片,谷歌推出Willow芯片,IBM制定长期量子路线图,展现了行业多样化的发展方向。尽管实用化时间表仍存争议,但这些进展表明重大突破可能比预期更快到来。然而,英伟达CEO黄仁勋等业内领袖仍持谨慎态度,认为商业应用或需数十年时间。
本文探讨了人们对人工智能的普遍担忧,并提供了一些建议来帮助人们适应AI技术。文章介绍了常见的AI恐惧,如就业displacement和失去人际关系等。同时,文章也给出了一些建议,如使用免费AI工具、自动化繁琐任务等,以帮助人们更好地理解和利用AI。专家Andrew Ng还分享了AI在商业应用中的潜力,强调了设计直观易用的AI系统的重要性。
Meta公司通过使用基于eBPF的Strobelight性能分析套件,成功将其主要服务的CPU使用率降低20%。这一成果不仅大幅减少了服务器需求,还展示了eBPF在系统优化和效率提升方面的巨大潜力。eBPF作为一种创新技术,正在revolutionizing操作系统内核级编程,为企业带来显著的性能提升和成本节约。