diff --git a/README.md b/README.md new file mode 100644 index 0000000..8eaed1c --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# Migration Performance Analysis + +## Überblick +Dieses Repository dokumentiert das Experiment **migration_performance_analysis**. Ziel ist die Untersuchung der Auswirkungen von vCPU-Pinning auf Migrationsspitzen in virtualisierten Umgebungen. Analyse- und Visualisierungstools bewerten Performance-Daten, um Migrationsverhalten unter Last nachvollziehbar zu machen. + +**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. + +**Link zum Artikel:** [Begleitender Blogeintrag](https://donau2space.de/tag-114-1510-leichter-schnee-ueber-passau-und-ich-lasse-migrationen-gegen-halb-gepinnt-antreten/) +**Git-Repository:** [https://git.donau2space.de/Mika/migration_performance_analysis](https://git.donau2space.de/Mika/migration_performance_analysis) + +## Inhalt des Repositories +Das Repository besteht aus drei technischen Artefakten: + +### 1. trace_analysis +- **Zweck:** Analyse von Performance-Daten von Migrationen mithilfe von eBPF-Probes +- **Art:** Python-Skript +- **Zielplattform:** Linux Userspace +- **Sprache:** Python +- **API-Funktion:** + - `analyze_spikes(event_log)` → Liefert `spike_analysis_report` mit Feldern *migration_type*, *timestamp*, *spike_count*. + +### 2. migration_metrics +- **Zweck:** Berechnung und Aufbereitung von Metriken, insbesondere P99-Spitzenwerten und Migrationsfrequenzen +- **Art:** Python-Skript +- **Zielplattform:** Linux Userspace +- **Sprache:** Python +- **API-Funktion:** + - `calculate_metrics(migration_data)` → Erzeugt `metric_report` mit Feldern *p99_delta* und *migration_spike_percentage*. + +### 3. data_visualization +- **Zweck:** Weboberfläche zur Darstellung der Analysedaten und Metriken +- **Art:** Web-UI +- **Zielplattform:** Webbrowser +- **Sprachen:** HTML, CSS, JavaScript +- **Routen:** + - `GET /migration_report` → Liefert ein *metric_report*-Objekt +- **Genutzte JS-Module:** *chart.js* + +## Installation & Nutzung +### Python-Komponenten +1. Voraussetzung: Python ≥ 3.8 unter Linux +2. Installation der Abhängigkeiten: + ```bash + pip install -r requirements.txt + ``` +3. Ausführung der Skripte: + ```bash + python trace_analysis.py --input events.json + python migration_metrics.py --input spike_analysis.json + ``` + +### Weboberfläche +1. Öffnen Sie `data_visualization/index.html` im Browser. +2. Die grafische Darstellung wird automatisch aus den generierten Metrikdaten erstellt. + +## Typische Use-Cases +- Evaluation der Effekte von CPU-Pinning bei Migrationen +- Identifikation von Migrationsspitzen mit Hilfe von eBPF-Traces +- Darstellung und Vergleich von Performance-Metriken über verschiedene Testläufe + +## Struktur & mögliche Erweiterungen +- **scripts/** enthält Python-Analysetools +- **visualization/** stellt Visualisierungs-Frontend und Ressourcen +- **data/** dient zur Ablage der verwendeten und erzeugten JSON-Berichte + +Erweiterungsmöglichkeiten: +- Zusätzliche Analysefunktionen zur Korrelation mit IO- und Netzwerklatenz +- Verbesserung der Visualisierung mit erweiterten Diagrammtypen +- Integration einer REST-API zur Live-Datenabfrage + +## Lizenz +Lizenz: **MIT** + +Alle Inhalte wurden automatisch durch KI erstellt. Nutzung auf eigenes Risiko. \ No newline at end of file