Facebook 开源了一些重要的 Linux 内核组件和工具,它们分别是 BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd,以下将对这些开源项目进行简介,这些开源项目是一整套解决重要计算集群管理问题的 Linux 内核组件和相关工具,覆盖了资源控制、资源利用、工作负载隔离、负载均衡、测量和监控等方面。
一、BPF
BPF 是 Linux 内核中一种高度灵活、高效率的代码执行引擎,可以让字节码在各个 hook 点运行,以使用自定义代码。虽然 BPF 已广泛用于数据包过滤,但是 BPF 的指令集具有很强的通用性和灵活性,足以支持和允许除网络之外的众多使用场合,比如跟踪和安全(比如沙箱)。 主页地址:https://facebookmicrosites.github.io/bpf/
二、Btrfs
Btrfs 是下一代文件系统,它以当下的数据中心为基础。它是一个写时复制(CoW)文件系统,专注于高级功能实现、容错、修复和轻松管理。Btrfs 旨在解决和管理大型存储子系统,并支持快照、联机碎片整理、池化和集成的多设备支持等功能。 主页地址:https://facebookmicrosites.github.io/btrfs/
三、Netconsd
Netconsd 是一个基于 UDP 的 netconsole 守护程序,为 Linux netconsole 消息提供轻量级传输。它接收并处理来自 Linux 内核的日志数据,并将其作为结构化数据提供以给生产工程师以快速识别集群中问题。 主页地址:https://facebookmicrosites.github.io/netconsd/
四、Cgroup2
Cgroup2 是下一代 Linux 内核机制,用于分组和构造工作负载,以及控制分配给每个组的系统资源量。它具有内存、I/O、中央处理单元等控制器,它还允许隔离工作负载,并为每个工作负载确定资源分配的优先级和配置。 主页地址:https://facebookmicrosites.github.io/cgroup2/
五、PSI
PSI(Pressure Stall Information,压力失速信息)首次提供了一种规范,通过内存、CPU 和 I/O 这三种主要资源的新压力指标来量化资源短缺。这些压力指标与此次开源的其它内核和用户空间工具相结合,可以在智能开发和响应时检测资源短缺。PSI 统计数据为即将发生的资源短缺提供早期预警,从而实现更积极主动、细致的响应。 主页地址:https://facebookmicrosites.github.io/psi/
六、Oomd
Oomd 是一个用户空间 OOM(内存不足)进程杀手,可以更好地了解系统上运行的进程的上下文和优先级。它允许配置对 OOM 条件的响应,例如暂停或终止非必需项、重新分配系统中的内存等操作。 主页地址:https://facebookmicrosites.github.io/oomd/
结语 BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd 这些和 Linux 内核相关的开源组件工具已被 Facebook 大规模用于其所有基础设施生产环境中,并用于其它许多企业组织的环境中。Linux 开发者可以利用其开源特性灵活运用。
相关主题 |