diff --git a/experiment_analysis/README.md b/experiment_analysis/README.md new file mode 100644 index 0000000..ff10d1b --- /dev/null +++ b/experiment_analysis/README.md @@ -0,0 +1,187 @@ +# Analyse: Einfluss von 'Pinned' vs. 'Unpinned' CPU-Zuweisung auf Mischfenster und Step-Reihenfolge + +## Purpose + +Vergleichsanalyse zwischen pinned und unpinned A/B-Test-Varianten zur Bewertung der Mischfenster-Dauer und Stabilität der Step-Reihenfolge in VM-Umgebungen. + +**Problemstellung:** Nicht deterministische Step-Ausführungsreihenfolgen und verlängerte Mischfenster unter unpinned CPU-Zuweisung erschweren die Konsistenzbewertung in A/B-Testläufen. + +**Ziele:** +- Ermitteln, wie CPU-Pinning die Mischfenster-Dauer beeinflusst. +- Quantifizieren der Stabilität der Step-Sequenz bei identischen Setup-Bedingungen. + +## Kontext & Hintergrund + +Pro Fall jeweils 10 Runs pinned und 10 Runs unpinned; identische Kernel-, VM- und Parser-Settings; Metriken pro corr_id aggregiert. + +**Gruppierung:** +- Case_03 +- Case_04 + +**Trace-Metadaten / zusätzliche Tags:** +- corr_id +- Mischfenster-Dauer pro Zone +- Step-Order-Sequenzen +- read_between_steps + +**Domänenkontext:** +- VM-basierte Performanceanalysen +- A/B-Testauswertung technischer Scheduler-Artefakte + +**Outlier-Definition:** +- Methode: Empirisch per p95/max-Grenze bestimmt +- Beschreibung: Mischfenster oberhalb des p95 werden als Ausreißer betrachtet. +- Metrik: Mischfenster-Dauer in Millisekunden + +**Motivation:** +- Ermittlung des Pinning-Einflusses auf deterministische Verarbeitung. +- Identifikation von Scheduling-bedingten Verzerrungen. +- Abgrenzung von Publish-Order- und Preemption-Effekten. + +## Methode / Spezifikation + +**Übersicht:** +- Vergleichende Auswertung zweier Konfigurationen (pinned, unpinned) bei identischen Testbedingungen. +- Messung der Mischfensterkennzahlen (p50, p95, max) sowie des step-order-stability-Scores. + +**Algorithmen / Verfahren:** +- Parser aggregiert Werte pro corr_id. +- Berechnung von p50, p95 und max der Mischfenster-Dauer je Zone. +- step-order-stability-Score = Anteil Runs mit identischer Step-Sequenz. + +### Bootstrap-Übersicht + +Kein Resampling-Verfahren eingesetzt, direkte Aggregation von Stichproben. + +**Zielgrößen:** +- Mischfenster-Dauer +- Step-Order-Stabilität + +### C-State-Kontrolle + +**Ziel:** Minimierung von Laufzeitvarianz durch CPU-Pinning. + +**Vorgehen:** +- Pinning von VMs auf dedizierte vCPUs. +- Vergleich mit unpinned Ausführungen ohne Affinitätsbindung. + +## Input / Output + +### Input-Anforderungen + +**Hardware:** +- Virtuelle Maschinen mit CPU-Affinitätssteuerung + +**Software:** +- Trace-Parser +- Python-Skript trace_agg.py + +**Konfiguration:** +- Konstante Kernel-/VM-Parameter +- Aktives Pinning via vCPU Affinity oder isolcpus + +### Erwartete Rohdaten + +**Felder pro Run:** +- corr_id +- Zone-ID +- p50/p95/max Mischfenster +- step_order_sequence +- read_between_steps + +**Formatbeispiele:** +- {"corr_id": "abc123", "mischfenster_ms": {"p95": 1.6, "max": 3.1}, "step_order_stability": 0.68} + +**Trace-Daten:** +- Format: kompaktes JSON pro Run +- Hinweis: Generiert durch trace_agg.py, standardisierte Felder pro Zone und Run. + +### Analyse-Ausgaben + +**Pro Gruppe / pro Governor:** +- p50/p95/max Mischfenster je Zone +- step-order-stability + +**Vergleichsausgaben:** +- unpinned vs pinned + - Δ: step-order-stability +30–40 Prozentpunkte + - CI(Δ): nicht berechnet (direkte Aggregation) + - RR: RR ~1.4–1.6 in Richtung höherer Stabilität bei pinned + +- C-State-Korrelation: Hoher Zusammenhang zwischen CPU-Migration und Mischfenster-Ausweitung. +- Trace-Muster: Stabile Sequenzen unter pinned; unpinned zeigt variierende Step-Reihenfolgen und breitere Mischzonen. + +## Workflow / Nutzung + +**Analyse-Workflow:** +- Runs in VM ausführen mit wechselndem Pinning-Schalter. +- Traces per corr_id sammeln. +- trace_agg.py ausführen zur JSON-Summary-Erzeugung. +- Aggregationsvergleich zwischen pinned und unpinned. + +### Trace-Template-Anforderungen + +**Ziel:** Vergleichbare trace-Ereignisse aus identischen Step-Triggern. + +**Erforderliche Tags & Metadaten:** +- corr_id +- step_name +- timestamp_ns +- zone_id + +**trace-cmd-Setup:** +- Verwendung identischer Tracepoints pro Run. +- Keine Änderungen an Parser-Version oder Triggerdefinition. + +**Run-Design für Contributors:** +- 10 pinned + 10 unpinned Runs pro Case. +- VMs mit kontrollierter CPU-Zuweisung ausführen. + +## Interpretation & erwartete Ergebnisse + +**Kernbefunde:** +- Pinned reduziert p95-Mischfenster signifikant (1,6→0,4 ms). +- Pinned erhöht step-order-stability von ~65 % auf bis zu 100 %. +- Migration und Preemption verstärken Mischfenster in unpinned Szenarien. + +**Implikationen für Experimente:** +- CPU-Affinität ist kritischer Faktor für zeitnahe Step-Verarbeitung. +- Unpinned Konfigurationen erzeugen Scheinvariabilität in Publikations-Timings. + +**Planungsziel:** +- Ziel: Trennung der Effekte von Publish-Order und seqcount-Retry. +- Vorgehen: + - Gezieltes Hooking um Write-Operationen. + - Messung der Reihenfolge und Retry-Zyklen unter kontrollierter Pinning-Variante. + +## Limitationen & Fallstricke + +**Datenbezogene Limitationen:** +- Begrenzte Run-Anzahl pro Case. +- Keine vollständige Randomisierung innerhalb der VM-Platzierung. + +**Bootstrap-spezifische Limitationen:** +- Keine Resampling-basierten Unsicherheitsintervalle. + +**Kausalität & Generalisierbarkeit:** +- Ergebnisse nur für getestete Kernel-/VM-Versionen gültig. +- Nicht direkt auf physische Maschinen übertragbar. + +**Praktische Fallstricke:** +- Falsches Pinning-Setup führt zu irreführender Stabilität. +- VM-interne Scheduler können residuale Migrationen erzwingen. + +## Nächste Schritte & Erweiterungen + +**Geplante Experimente:** +- Hooking der Write-Operationen zur sauberen Trennung von Publish-Order und Retry-Pfaden. + +**Analyseziele:** +- Messung der Latenzen innerhalb der Publikationssequenz. +- Einführung alternativer Stabilitätsmetriken (z. B. Edit-Distance). + +**Regression & Modellierung:** +- Erweiterung um lineare Modelle zur Quantifizierung des Pinning-Effekts über verschiedene Zonen. + +**Community-Beiträge:** +- Feedback zu alternativen Pinning-Strategien (vCPU-Affinity, isolcpus, cgroup-cpuset) erwünscht.