# 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.