Facebook 持續(xù)研究 BOLT 來提升 Linux 內(nèi)核性能
Facebook 作為積極貢獻(xiàn) Linux 內(nèi)核的廠商,近年來,其工程師一直在持續(xù)研究 BOLT,將此作為加速 Linux/ELF 二進(jìn)制文件的方法。
BOLT 即"Binary Optimization and Layout Tool"(二進(jìn)制優(yōu)化和布局工具)的縮寫,能夠在配置文件后重新排列可執(zhí)行文件,產(chǎn)生比編譯器的 LTO 和 PGO 優(yōu)化所能達(dá)到的更快性能。
BOLT 的最新目標(biāo)之一是對 Linux 內(nèi)核鏡像進(jìn)行優(yōu)化。
與對 Linux 內(nèi)核進(jìn)行配置文件引導(dǎo)優(yōu)化 (PGO) 時產(chǎn)生的挑戰(zhàn)類似,對 Linux 內(nèi)核進(jìn)行 BOLT 處理也面臨著類似的復(fù)雜障礙,包括:正確地分析/采樣具有相關(guān)工作負(fù)載的內(nèi)核并進(jìn)行優(yōu)化、內(nèi)核的大量代碼庫、模塊與核心內(nèi)核代碼等對比?,F(xiàn)有的 BOLT 只專注于優(yōu)化 ELF 應(yīng)用程序可執(zhí)行文件。
在本周的 Linux Plumbers Conference 大會上,有來自 Facebook 的工程師討論了對內(nèi)核的 BOLT 處理,帶來的性能提升如下圖所示:
從數(shù)據(jù)可以看出,這是一項值得持續(xù)投入研究的工作,因為 Facebook 在 PGO+LTO 編譯器優(yōu)化之上通過 BOLT 優(yōu)化獲得了"兩位數(shù)的速度提升"。此處的速度提升是通過優(yōu)化可執(zhí)行文件的代碼布局來實現(xiàn)的,可更有效地使用硬件頁面和指令緩存。
如果你對 Facebook 的 BOLT 優(yōu)化工具感興趣,或者對未來能夠完全使用 BOLT 優(yōu)化內(nèi)核的前景感興趣,可查閱 Facebook 工程師制作的幻燈片(地址)。BOLT 代碼也已開源 https://github.com/facebookincubator/BOLT。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Facebook 持續(xù)研究 BOLT 來提升 Linux 內(nèi)核性能
本文地址:https://www.oschina.net/news/161743/facebook-bolting-the-kernel