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