Zum Inhalt springen

bpftune – Automatic Kernel Tuning with eBPF Cheatsheet

bpftune – Automatic Kernel Tuning with eBPF Cheatsheet

bpftune (von Oracle) ist ein leichtgewichtiger Daemon, der automatisch Linux Kernel Parameter mit eBPF tuned. Statt dass ein Admin Sysctl-Werte erraten muss, beobachtet er tatsächliches System-Verhalten durch eBPF Probes – TCP Buffer Druck, Connection Table Sättigung, Memory Reclaim – und passt die relevanten Parameter kontinuierlich an, wenn sich die Last ändert. Seine leitende Philosophie ist unsichtbar zu sein: nahe Null Overhead, keine Konfiguration erforderlich, und es zieht sich absichtlich von jedem Parameter zurück, den ein Administrator manuell gesetzt hat.

Automatisches Tuning ändert Kernel-Verhalten auf einem lebenden System. Probieren Sie es auf nicht-kritischen Hosts und schauen Sie auf die Logs, bevor Sie es breiter einführen.

Anforderungen

  • Linux Kernel mit BPF und BTF Support (5.15+ empfohlen)
  • Root Privilegien (lädt eBPF Programme, schreibt Sysctls)

Installation

PlattformBefehl
Oracle Linux / Fedorasudo dnf install bpftune
Aus Quellegit clone https://github.com/oracle/bpftune && make && sudo make install
Servicesudo systemctl enable --now bpftune
Überprüfenbpftune -h

Laufen

BefehlBeschreibung
sudo bpftuneFühren Sie im Vordergrund aus
sudo bpftune -dFühren Sie als Daemon aus
sudo systemctl start bpftuneStarten Sie via Systemd
sudo bpftune -sZeigen Sie Zusammenfassung von Tunern und aktuellem Zustand
journalctl -u bpftune -fSchauen Sie Tuning-Entscheidungen live

Wichtige Optionen

FlagEffekt
-dDaemon-Modus
-sZusammenfassung/Status-Ausgabe
-SUnterdrücken (Dry-run) – log was es würde ändern
-LLearning Mode / Legacy Verhalten
-rRollback Änderungen beim Exit
-l LEVELLog Verbosität
# Sehen Sie, was es tunen würde ohne irgendetwas zu ändern
sudo bpftune -S -l debug

Was es tuned

TunerPasst an
TCP Buffertcp_rmem / tcp_wmem unter Durchsatz-Druck
TCP CongestionCongestion Control Algorithmus Auswahl
Connection Limitssomaxconn, Backlog Größen bei Queues Overflow
Neighbour TableARP/ND Tabellen-Größen bei Eintrags-Drops
Route TableRoute Cache Sizing
Netns / SysctlPer-Namespace Äquivalente wo anwendbar

Wie die Feedback-Schleife funktioniert

SchrittDetail
ObserveeBPF Probes zählen Drops, Overflows, Druck-Events
DecideWenn ein Schwellwert wiederholt getroffen wird, ist der Parameter ein Bottleneck
AdjustErhöhen Sie die Limit inkrementell (nie unbegrenzt)
Re-observeBestätigen Sie das Symptom geklärt
Back OffWenn ein Admin den Wert manuell gesetzt hat, lassen Sie es allein

Diese “Beobachte, Stoße, Überprüfe” Schleife ist warum es kontinuierlich laufen kann ohne zu oszillieren.

Seine Auswirkung überprüfen

# Was hat bpftune geändert?
sudo bpftune -s

# Bestätigen Sie einen Sysctl, den es angepasst hat
sysctl net.ipv4.tcp_rmem net.core.somaxconn

# Korrelieren Sie mit dem Symptom, das es behoben hat
ss -s                      # Socket/Queue Stats
netstat -s | grep -i drop  # Drops, die Tuning auslösten

Wann es zu verwenden ist

SzenarioPassung
Variable/unbekannte WorkloadsStark – passt sich an, wenn sich die Last ändert
Cloud Instanzen verschiedener GrößenStark – keine Per-Instanz Tuning
Hoch getuned, feste WorkloadSchwach – Ihre manuellen Werte sind wahrscheinlich besser
Strikte Change ControlVerwenden Sie -S Dry-run zuerst oder überspringen

bpftune vs Manual/Profile Tuning

AspektbpftuneTuneDManueller Sysctl
ModellContinuous, Feedback-getriebenStatische ProfileOne-time Werte
Passt sich an Load anJaNeinNein
Config erforderlichKeineWählen Sie ein ProfilVolle Expertise
Respektiert manuelle EinstellungenJa (zieht sich zurück)ÜberschreibtN/A

Ergänzt TuneD (breite statische Profile) und direkte Tools wie cpupower; bpftune zielt auf Netzwerk/Kernel Limits spezifisch ab.

Ressourcen