Auto experiment repo from n8n
Find a file
2026-01-08 14:34:04 +00:00
cpu_pinning_analysis Add cpu_pinning_analysis/requirements.txt 2026-01-08 14:34:04 +00:00
LICENCE.md Add LICENCE.md 2026-01-08 14:34:04 +00:00
README.md Add README.md 2026-01-08 14:34:04 +00:00

P95/P99 Timing Analysis

Überblick

Das Experiment p95_p99_timing_analysis untersucht die Auswirkungen von CPU-Pinning auf Latenzen in virtuellen Maschinen. Ziel ist die Analyse der Scheduling-Realitäten durch Auswertung von P95/P99-Metriken, um Unterschiede in der Performance zwischen pinned und unpinned vCPUs zu quantifizieren.

Artikel und Kontext

Hinweis

Alle Inhalte wurden per KI generiert.

Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.

Inhalt des Repositories

Das Repository enthält drei Hauptkomponenten, implementiert in Python, für Linux-Umgebungen:

1. cpu_pinning_analysis

  • Art: Python-Skript
  • Ziel: linux-demo
  • Sprache: Python
  • Zweck: Analyse von P95/P99-Latenzen auf Basis von Switch-Events zwischen pinned und unpinned vCPUs.
  • API-Funktionen:
    • analyze_latencies(pinned_data, unpinned_data) → liefert latency_metrics
  • Datenstruktur: latency_metrics (JSON) mit Feldern P95, P99, histogram

2. ci_smoke_gate

  • Art: Python-Skript
  • Ziel: linux-demo
  • Sprache: Python
  • Zweck: Automatisierte CI-Prüfung von P95/P99 und Histogrammformen zur Erkennung von Latenzregressionen.
  • API-Funktionen:
    • run_ci_tests(test_config) → liefert test_results
  • Datenstruktur: test_results (JSON) mit Feldern pinned, unpinned, regressions

3. ebpf_timestamping

  • Art: Python-Skript
  • Ziel: linux-userspace
  • Sprache: Python
  • Zweck: Implementierung eines eBPF-basierten Timestamping-Mechanismus zur präzisen Erfassung von Schreibfensterzeiten (Start und Ende).
  • API-Funktionen:
    • measure_window_times(write_operations) → liefert timing_results
  • Datenstruktur: timing_results (JSON) mit Feldern start_time, end_time

Installation & Nutzung

Voraussetzungen:

  • Linux-System mit Python ≥ 3.8
  • eBPF-Unterstützung im Kernel (für ebpf_timestamping)

Installation:

  1. Repository klonen.
  2. Abhängigkeiten installieren: pip install -r requirements.txt
  3. Skripte ausführbar machen: chmod +x *.py

Beispielhafte Nutzung:

  • Latenz-Analyse ausführen: python cpu_pinning_analysis.py
  • CI-Schnellprüfung: python ci_smoke_gate.py
  • eBPF-Timestamping durchführen: python ebpf_timestamping.py

Typische Use-Cases

  • Vergleich von Latenzprofilen bei CPU-Pinning vs. ohne Pinning
  • Automatisierte Performance-Regressionstests in CI/CD-Pipelines
  • Untersuchung von Tail-Latencies auf verschiedenen VM-Setups
  • Präzise Erfassung von Schreibfenster-Timings im Userspace

Struktur & mögliche Erweiterungen

Die drei unabhängigen Python-Module können einzeln oder kombiniert eingesetzt werden. Eine Integration in CI-Workflows ist vorgesehen. Erweiterungen können beinhalten:

  • Erweiterte Visualisierung der Latenz-Histogramme
  • REST-API zur Echtzeit-Auswertung der Messwerte
  • Unterstützung weiterer Virtualisierungsplattformen

Lizenz

Veröffentlicht unter der MIT-Lizenz.


Hinweis: Diese Dokumentation und alle zugehörigen Inhalte wurden automatisiert durch eine KI generiert. Nutzung auf eigenes Risiko.