Add README.md

This commit is contained in:
Mika 2026-01-14 15:28:07 +00:00
parent 96f4552bc1
commit 5dc8ef6e93

82
README.md Normal file
View file

@ -0,0 +1,82 @@
# no_cpu_switch_analysis
## Überblick
Dieses Projekt dient der Analyse von "no_cpu_switch"-Spikes durch erweiterte Logging-Techniken mit eBPF und datengestützte Entscheidungsfindung. Ziel ist es, Ursachen von ungewöhnlichen Scheduler-Ereignissen zu identifizieren und diese anhand korrelierter Trace-Daten systematisch zu klassifizieren.
**Link zum Artikel:** [https://donau2space.de/tag-118-1617-nebel-ueber-passau-und-ich-entlarve-zwei-no_cpu_switch-spikes-als-versteckte-switches/](https://donau2space.de/tag-118-1617-nebel-ueber-passau-und-ich-entlarve-zwei-no_cpu_switch-spikes-als-versteckte-switches/)
**Git Repository:** [https://git.donau2space.de/Mika/no_cpu_switch_analysis](https://git.donau2space.de/Mika/no_cpu_switch_analysis)
### 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
### trace_agg
- **Art:** Python-Skript
- **Ziel:** Linux Userspace
- **Beschreibung:** Aggregiert Trace-Daten aus Ereignisprotokollen und erzeugt kompaktes JSON für nachfolgende Analyse.
- **Sprache:** Python
**API-Funktion:**
- `aggregate_trace_data(correlation_id) → json` Zusammenführung und Aggregation von Trace-Einträgen mit gemeinsamer Korrelations-ID.
**Datenstruktur:**
- `TraceData` (JSON): enthält Felder *had_sched_switch*, *had_irq*, *had_softirq*, *cpu_ids_seen*.
---
### decision_tree
- **Art:** Python-Skript
- **Ziel:** Linux Userspace
- **Beschreibung:** Führt eine Klassifizierung von Scheduler-Ereignissen basierend auf Kontextmarkern durch und leitet daraus Entscheidungsableitungen ab.
- **Sprache:** Python
**API-Funktion:**
- `classify_event(context_marker) → string` Klassifiziert Event auf Basis von Kontextinformationen.
---
### probe_config
- **Art:** Dokumentation
- **Ziel:** Gemischt (Analyseunterstützung)
- **Beschreibung:** Enthält Informationen zu Read-/Write-Probes zur Verfeinerung der Event-Analyse.
---
## Installation & Nutzung
1. **Voraussetzungen:** Python 3.9 oder höher, Linux-Userspace mit eBPF-Unterstützung.
2. Repository klonen und in das Projektverzeichnis wechseln:
```bash
git clone https://git.donau2space.de/Mika/no_cpu_switch_analysis
cd no_cpu_switch_analysis
```
3. Abhängigkeiten installieren:
```bash
pip install -r requirements.txt
```
4. Skripte ausführen:
```bash
python trace_agg.py
python decision_tree.py
```
## Typische Use-Cases
- Identifikation von Anomalien im Scheduler-Verhalten.
- Klassifizierung von CPU-Switch-Ereignissen anhand von Kontextmerkmalen.
- Aggregation großer Mengen von Trace-Daten für maschinelle Lernverfahren.
- Erweiterbare Basis für fortgeschrittene Performance-Analysen unter Linux.
## Struktur & Erweiterbarkeit
- **/trace_agg.py** Aggregationsmodul für Trace-Daten.
- **/decision_tree.py** Klassifikationslogik.
- **/docs/probe_config.md** Dokumentation zu Probes und Analyseparametern.
Erweiterungen können z.B. durch zusätzliche Analyse-Module, überarbeitete Klassifikationsmodelle oder Integration in Monitoring-Pipelines erfolgen.
## Lizenz
Dieses Projekt steht unter der **MIT-Lizenz**.
Hinweis: Inhalte wurden automatisch generiert. Nutzung auf eigene Verantwortung.