近日, Facebook 开源了一套解决重要计算集群管理问题的 Linux 内核组件和相关工具, 这些项目覆盖了资源控制, 资源利用, 工作负载隔离, 负载均衡, 测量和监控等方面: BPF,Btrfs,Netconsd,Cgroup2,PSI,Oomd.
Facebook 表示这些项目现在已大规模用于其所有基础设施生产环境中, 并用于其它许多企业组织的环境中.
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/
来源: http://news.51cto.com/art/201811/586140.htm