又一批Linux內(nèi)核組件與工具開源!來自Facebook!
近日,F(xiàn)acebook 開源了一套解決重要計算集群管理問題的 Linux 內(nèi)核組件和相關(guān)工具,這些項目覆蓋了資源控制、資源利用、工作負(fù)載隔離、負(fù)載均衡、測量和監(jiān)控等方面:BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd。
Facebook 表示這些項目現(xiàn)在已大規(guī)模用于其所有基礎(chǔ)設(shè)施生產(chǎn)環(huán)境中,并用于其它許多企業(yè)組織的環(huán)境中。
BPF
BPF 是 Linux 內(nèi)核中一種高度靈活、高效率的代碼執(zhí)行引擎,可以讓字節(jié)碼在各個 hook 點運行,以使用自定義代碼。雖然 BPF 已廣泛用于數(shù)據(jù)***濾,但是 BPF 的指令集具有很強(qiáng)的通用性和靈活性,足以支持和允許除網(wǎng)絡(luò)之外的眾多使用場合,比如跟蹤和安全(比如沙箱)。
https://facebookmicrosites.github.io/bpf/
Btrfs
Btrfs 是下一代文件系統(tǒng),它以當(dāng)下的數(shù)據(jù)中心為基礎(chǔ)。它是一個寫時復(fù)制(CoW)文件系統(tǒng),專注于高級功能實現(xiàn)、容錯、修復(fù)和輕松管理。Btrfs 旨在解決和管理大型存儲子系統(tǒng),并支持快照、聯(lián)機(jī)碎片整理、池化和集成的多設(shè)備支持等功能。
https://facebookmicrosites.github.io/btrfs/
Netconsd
Netconsd 是一個基于 UDP 的 netconsole 守護(hù)程序,為 Linux netconsole 消息提供輕量級傳輸。它接收并處理來自 Linux 內(nèi)核的日志數(shù)據(jù),并將其作為結(jié)構(gòu)化數(shù)據(jù)提供以給生產(chǎn)工程師以快速識別集群中問題。
https://facebookmicrosites.github.io/netconsd/
Cgroup2
Cgroup2 是下一代 Linux 內(nèi)核機(jī)制,用于分組和構(gòu)造工作負(fù)載,以及控制分配給每個組的系統(tǒng)資源量。它具有內(nèi)存、I/O、中央處理單元等控制器,它還允許隔離工作負(fù)載,并為每個工作負(fù)載確定資源分配的優(yōu)先級和配置。
https://facebookmicrosites.github.io/cgroup2/
PSI
PSI(Pressure Stall Information,壓力失速信息)***提供了一種規(guī)范,通過內(nèi)存、CPU 和 I/O 這三種主要資源的新壓力指標(biāo)來量化資源短缺。這些壓力指標(biāo)與此次開源的其它內(nèi)核和用戶空間工具相結(jié)合,可以在智能開發(fā)和響應(yīng)時檢測資源短缺。PSI 統(tǒng)計數(shù)據(jù)為即將發(fā)生的資源短缺提供早期預(yù)警,從而實現(xiàn)更積極主動、細(xì)致的響應(yīng)。
https://facebookmicrosites.github.io/psi/
Oomd
Oomd 是一個用戶空間 OOM(內(nèi)存不足)進(jìn)程殺手,可以更好地了解系統(tǒng)上運行的進(jìn)程的上下文和優(yōu)先級。它允許配置對 OOM 條件的響應(yīng),例如暫停或終止非必需項、重新分配系統(tǒng)中的內(nèi)存等操作。