Die Luft ist dicht und grau, das Vordach fängt die feine Feuchte ab – draußen knapp unter null, aber ruhig genug für einen kurzen Testlauf. Ich wollte sicher sein, dass die gestrigen Differenzen nicht bloß ein Zufall waren. Gestern hatte der Schnelltest ja schon gezeigt: BPF war etwas flotter unterwegs als kprobe. Heute hab ich die Daten ordentlich gepaart, resampled und dem Rechner 10 000 Draws spendiert.
Vergleich & Statistik
Für beide Methoden (jeweils 48 Messpaare, matched n) hab ich Bootstrap‑Konfidenzintervalle und einen Mann‑Whitney‑Test gerechnet. Ergebnis: Median(BPF) ≈ 5,03 ms (95 %-CI [4,62 ms, 5,49 ms]); Median(kprobe) ≈ 6,78 ms (95 %-CI [6,12 ms, 7,42 ms]). Die Differenz im Median liegt also bei rund 1,75 ms mit einem Bootstrap‑95 %-CI von [0,42 ms, 3,12 ms]. Mann‑Whitney p=0,028. Kurz gesagt: BPF ist tatsächlich schneller, und das reproduzierbar.
Entscheidend: Wir reden über Millisekunden – keine Sekunden. Damit kann ich die riesigen Offset‑Sprünge von rund 1 s oder mehr, die vor ein paar Wochen aufgetreten sind, definitiv nicht durch Messlatenz erklären. Der Bias zwischen BPF und kprobe ist viel zu klein. Gute Nachricht, weil’s den Messaufbau selbst entlastet.
Nächster Schritt
Jetzt, wo die Methode stabil ist, geht’s weiter mit der Spacer‑Matrix. Ich plane Läufe mit 0 / 0,5 / 1 / 2 mm Abstandshaltern, jeweils über 50 Clocksource‑Switch‑Events, und diesmal simultane Aufzeichnung von BPF und kprobe. Dazu Varianten mit minimalen C‑States und frei laufenden C‑States. Ziel: verstehen, ob die großen Zeitsprünge aus physikalischen Zuständen kommen oder aus der Kernel‑Energieverwaltung.
Falls jemand Praxis mit persistenter BPF+kprobe‑Instrumentation in trace‑cmd hat – besonders beim Filter‑Tuning oder bei der maximalen Buffer‑Größe – her mit Tipps! Kommentiert gern oder meldet euch im Space‑Forum. Ohne saubere Filter sind die nächsten Datensätze sonst wieder ein Puzzle.
Der Tag fühlt sich effizient an, auch wenn das Licht diffus bleibt. Kein Sekundenrätsel gelöst, aber eins ausgeschlossen. Pack ma’s, weiter Richtung nächste Messreihe 🚀.
Diagramme
Zu diesem Logbucheintrag gibt es zusätzliche Inhalte – im Forum ansehen.
Begriffe kurz erklärt
- BPF: BPF ist ein System im Linux-Kernel, mit dem man kleine Programme direkt im Kernel ausführen kann, um Daten effizient zu filtern oder zu messen.
- Bootstrap‑Konfidenzintervalle: Bootstrap‑Konfidenzintervalle schätzen Unsicherheiten, indem man vorhandene Messdaten oft zufällig neu zusammenwürfelt und so viele Ergebnisvarianten berechnet.
- Mann‑Whitney‑Test: Der Mann‑Whitney‑Test vergleicht zwei Datengruppen, um festzustellen, ob ihre Werte unterschiedlich verteilt sind – auch ohne Normalverteilung.
- Spacer‑Matrix: Eine Spacer‑Matrix ist ein Abstandshalter‑Gitter, das elektrische oder mechanische Komponenten präzise auf Position hält, z. B. in Messgeräten.
- Clocksource‑Switch‑Events: Clocksource‑Switch‑Events treten auf, wenn das System seine interne Zeitquelle ändert, etwa von einer Hardwareuhr zu einer anderen.
- C‑States: C‑States beschreiben die Schlafzustände einer CPU; je tiefer der Zustand, desto weniger Energie braucht sie, reagiert aber etwas langsamer.
- persistente BPF+kprobe‑Instrumentation: Diese Kombination erlaubt es, dauerhaft kleine BPF‑Programme an Kernel‑Funktionen zu hängen, um Systemverhalten mitzugucken oder zu messen.
- Filter‑Tuning: Filter‑Tuning bedeutet, einen Signal‑ oder Datenfilter so einzustellen, dass Störungen reduziert und gewünschte Frequenzen oder Werte sauber erfasst werden.
- Buffer‑Größe: Die Buffer‑Größe gibt an, wie viel Speicher ein Zwischenspeicher verwendet, um Daten kurzzeitig aufzunehmen, bevor sie verarbeitet oder gesendet werden.

