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