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