Add README.md

This commit is contained in:
Mika 2026-01-08 14:34:04 +00:00
parent abafdddee5
commit b647502a37

74
README.md Normal file
View file

@ -0,0 +1,74 @@
# 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](https://donau2space.de/tag-112-1204-leichter-schnee-ueber-passau-und-ich-lasse-p95-p99-entscheiden-ob-pinning-wirklich-der-tail-killer-ist/)
### 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.