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