コンテンツにスキップ

bpftune - eBPF を使用した自動 カーネル チューニング チートシート

bpftune - eBPF を使用した自動 カーネル チューニング チートシート

bpftune (Oracle 製) は eBPF を使用して Linux カーネル パラメータを自動的にチューンする軽量デーモン。管理者が sysctl 値を推測する必要はなく、eBPF プローブを通じて実際のシステム動作を観察 — TCP バッファ 圧力、接続テーブル飽和、メモリ リクレレーション — と、負荷が変更するときに関連するパラメータを継続的に調整。その指導原則は目立たないこと:ほぼゼロのオーバーヘッド、構成不要、そして、管理者が手動で設定したパラメータから意図的にバック オフ。

自動チューニングはライブ システムのカーネル動作を変更。広範なロールアウト前に非クリティカル ホストで試行し、ログを確認。

要件

  • eBPF と BTF サポート (5.15+ 推奨) を持つ Linux カーネル
  • ルート 権限 (eBPF プログラム をロード、sysctl を書き込む)

インストール

プラットフォームコマンド
Oracle Linux / Fedorasudo dnf install bpftune
ソースからgit clone https://github.com/oracle/bpftune && make && sudo make install
サービスsudo systemctl enable --now bpftune
確認bpftune -h

実行

コマンド説明
sudo bpftuneフォアグラウンドで実行
sudo bpftune -dデーモンとして実行
sudo systemctl start bpftunesystemd 経由で開始
sudo bpftune -sチューナー とその現在の状態の概要を表示
journalctl -u bpftune -fチューニング 決定をライブで見る

キー オプション

フラグ効果
-dデーモン モード
-s概要/ステータス 出力
-S抑制 (ドライ ラン) — 変更するもの をログに記録
-L学習モード / レガシー 動作
-r終了時に変更 をロールバック
-l LEVELログ 詳細度
# 何かを変更せずにチューン することかを確認
sudo bpftune -S -l debug

チューンするもの

チューナー調整
TCP バッファスループット 圧力下でtcp_rmem / tcp_wmem
TCP 輻輳輻輳制御アルゴリズム 選択
接続制限キュー オーバーフロー時somaxconn、バックログ サイズ
ネイバー テーブルエントリ がドロップされたときの ARP/ND テーブル サイズ
ルート テーブルルート キャッシュ サイジング
Netns / sysctl適用可能な名前空間 等価物

フィードバック ループ がどのように機能するか

ステップ詳細
監視eBPF プローブ ドロップ、オーバーフロー、圧力 イベント をカウント
決定しきい値が繰り返しヒットされた場合、パラメータ はボトルネック
調整制限を段階的に上げ (決して無制限ではない)
再監視症状 がクリア されたことを確認
バック オフ管理者が値を手動で設定した場合、それを一人にする

この「監視、ナッジ、検証」サイクルが、それが発振することなく継続的に実行できる理由。

その影響を検証する

# bpftune は何を変更したか?
sudo bpftune -s

# それが報告した調整を確認 sysctl
sysctl net.ipv4.tcp_rmem net.core.somaxconn

# それが修正していた症状 と相関
ss -s                      # ソケット/キュー 統計
netstat -s | grep -i drop  # チューニング をトリガー した削除

いつ使用するか

シナリオフィット
変数/不明なワークロード強い — 負荷が変更 されると適応
異なるサイズのクラウド インスタンス強い — インスタンス単位のチューニング なし
高度にチューン 済み、固定ワークロード弱い — 手動値はおそらくより良い
厳格な変更制御ドライ ラン用に-Sを使用するか、スキップ

bpftune vs 手動/プロファイル チューニング

側面bpftuneTuneD手動 sysctl
モデル継続的、フィードバック駆動静的プロファイルワンタイム 値
負荷に適応はいいいえいいえ
構成 必要なしプロファイルを選択完全な 専門知識
手動設定 を尊重はい (バック オフ)上書きN/A

TuneD (幅広い静的プロファイル)を補完し、cpupowerのような直接ツール;bpftune はネットワーク/カーネル 制限を特に対象。

リソース