Meta/Facebook は、Linux カーネル バイナリのレイアウトを最適化するために、Linux カーネルでの BOLT の使用を数年間研究してきました。 BOLT がアップストリームの LLVM に含まれて以来、彼らはカーネルの BOLT に関する作業を続けてきました。 BOLT に最適化された Linux カーネルを構築するためのガイドが公開されました。これにより、システム パフォーマンスが約 5% 向上すると予想されます。


現在、BOLT を使用して Linux カーネルのパフォーマンスを最適化すると、デフォルトのパフォーマンスより約 5% 向上します。特定のワークロードのパフォーマンスの向上は、最終的にはアプリケーションがカーネル空間でどれだけの時間を費やすかによって決まります。データベース サーバーやその他のネットワーク集約型のワークロードなどでは、ユーザー空間のタスクよりも高いパフォーマンスが得られます。

先週、Meta エンジニアの Maksim Panchenko 氏は、カーネル イメージを構築し、BOLT を使用して最適化したいユーザー向けの Linux カーネル最適化ガイドを提出しました。このガイドでは、具体的なパフォーマンス上の利点について説明します。

「コード レイアウトを改善することで、BOLT は命令キャッシュ ミスや分岐予測ミスを減らし、コアのパフォーマンスを最大 5% 向上させることができます。システム全体のパフォーマンスを測定する場合、この数値はアプリケーションがコアで費やす時間 (I/O 時間を除く) に基づいて適宜調整する必要があります。」

BOLT を使用して Linux カーネルを最適化するには、新しいガイドを参照してください。