BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開
今回は「BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開」についてご紹介します。
関連ワード (サイズ、バッファサイズ、追加等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オラクルはLinuxカーネルのパラメータを、ワークロードに合わせて継続的に自動チューニングするツール「bpftune」をオープンソースで公開しました(GitHubのページ)。
bpftuneは「BPF」(Berkeley Packet Filter)と呼ばれる、Linuxカーネル内のさまざまな機能をフックして機能拡張が可能な仕組みを利用し、継続的にLinuxカーネルのきめこまなかレベルで監視を行い自動チューニングを実現しています。
オラクルはbpftuneを開発した背景として、クラウドに代表される大規模なサーバ展開が可能なインフラにおいて、以前よりも個々のサーバのチューニングについて注意が払われることがほとんどなくなったこと、チューニングされるとしても静的に適切な設定があると考えられることが一般的であることを挙げています。
bpftuneによる自動チューニング対象の項目
bpftuneは現時点ではオラクル社内でよく用いられるチューニング項目に焦点が当てられているとのことですが、プラガブルな構造で拡張可能とのこと。
チューニング対象となっているのは以下の項目。
輻輳チューナー
輻輳制御アルゴリズムの選択を自動調整
隣接(Neighbour)テーブルチューナー
プロトコル処理用のNeighbourテーブルが満杯に近づくと、サイズを自動調整
ルート(Route)テーブルチューナー
Routeテーブルが満杯に近づくとサイズを自動調整
Sysctlチューナー
sysctl の設定を監視し、自動チューニングされた sysctl 値とマニュアル設定が衝突する場合、関連する自動チューナを無効に
TCPバッファチューナー
イニシャルバッファサイズと最大バッファサイズを自動調整
Netバッファチューナー
コアネットワーキングに関連する項目を自動調整
Netnsチューナー
ネットワーク名前空間の追加と削除を通知し、bpftune 全体の名前空間認識を支援。名前空間の認識はコンテナの自動チューニングを可能にする点で重要となる
bpftuneが現在利用中のLinuxカーネルに対応しているかどうかは、「bpftune -S」コマンドによって確認できます。対応している場合、以下のような表示が返ってきます。