Add README.md
This commit is contained in:
parent
abafdddee5
commit
b647502a37
1 changed files with 74 additions and 0 deletions
74
README.md
Normal file
74
README.md
Normal 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.
|
||||
Loading…
Reference in a new issue