在今天的采访中,我们请来了 Meta 内核团队的软件工程师 Martin Lau。他从事 BPF(伯克利包过滤器)和内核网络开发的工作。
本系列采访重点介绍为 Linux 内核做出贡献的 Meta 软件工程师。Meta Linux 内核团队与更广泛的 Linux 社群合作,为内核添加新功能,并确保内核在 Meta 生产数据中心中良好运行。团队中的工程师与业内同行合作,使内核更适合 Meta 的工作负载,并使 Linux 更适合所有用户。
我叫 Martin KaFai Lau,入职 Meta 已经有 9 年半了。6 年前,我加入了 Meta 内核团队。我专注于 BPF 和网络开发领域。这之前,我一直待在 Meta 流量团队,从事 HTTP、TLS 和 CDN 方面的工作。
我每天的日常工作包括查看邮件列表中的补丁、支持生产环境中的 Meta 用例、与其他网络团队一起探讨想法以及为上游编写补丁。
通过 BPF 实现内核网络堆栈可扩展性的工作。除此之外,从事与堆栈式工作负载(需要对每个任务都施加带宽限制)相关的工作,探讨使用 BPF 进行单向延迟测量,还有将服务启动时间从一分钟以上缩短到 6 秒,都让我感到十分高兴。
规模。如能在 Meta 的生产规模下解决各种问题,必将令人兴奋不已。内核是所有服务使用的核心部分,是计算机硬件及其进程之间的核心接口。内核的改进将对所有这些服务都产生积极的影响。
规模是指具有丰富生产经验的内部用户的数量,其中每个用户的用途可能不同。从不同团队获得反馈的速度要快得多,他们可以说明某一部分在现实世界中能否良好运行。他们的反馈还会推动新的内核开发。
我的同事是我不熟悉的不同内核子系统的维护者。在 Meta 与他们共事是一种很好的学习经历,价值非凡。
在 LPC 演讲中,我概述了内核里的 BPF 网络 hooks 及其在 Meta 的使用方法、我经常从我们内部用户处听到的惊喜信息,以及未来可以解决的问题。
多年来,BPF 获得了很大的发展,因此有时很难确定应如何在网络堆栈中使用 BPF。你可以访问活动页面“Meta 中的 BPF 网络 hooks 和用户体验概述”,浏览演讲中的一些资源。
我之前的工作仅专注于用户空间。通常情况下,我能快速地了解我当时所负责部分的总体情况。我认为,在开展内核相关工作时很难做到这一点,因为内核的代码库规模庞大。更重要的是,从上游人员处获取帮助也很困难。
我花时间阅读并仔细查看了邮件列表,注意了相关人员处理邮件列表的方法。要掌握内核中的所有内容是不可能的。于是,我缩小了范围,专注于一个部分,修改了某个内容,以获取上游的信任。然后,我重复这个过程,以拓宽我的知识空间。
Linux 内核邮件列表。花点时间阅读你感兴趣的帖子。了解相关方平时的疑虑和兴趣。从可以切实解决某个生产问题的小事着手。
我通常会积极关注 BPF 邮件列表方面的信息。
如需了解有关 Meta Open Source 的更多信息,请访问我们的 Open Source 网站、订阅我们的 YouTube 频道,或在 Twitter、Facebook 和 LinkedIn 上关注我们。
图像版权:Tux 企鹅是 Larry Ewing (lewing@isc.tamu.edu) 和 GIMP 的原创设计。