n40_time_measurement/readme.md
2026-01-22 12:57:26 +00:00

91 lines
No EOL
3.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## n40_time_measurement Experiment zur präzisen Zeitmessung
### Überblick
Dieses Repository dokumentiert das Experiment **n40_time_measurement**. Ziel ist die präzise Messung und Aggregation von Kernel-Ereignissen mit Schwerpunkt auf Stabilität und Verlässlichkeit der ermittelten Metriken.
**Link zum Artikel:** [https://donau2space.de/tag-126-1251-wolkig-ueber-passau-und-mein-n40-bekommt-heute-drei-neue-harte-punkte/](https://donau2space.de/tag-126-1251-wolkig-ueber-passau-und-mein-n40-bekommt-heute-drei-neue-harte-punkte/)
**Git Repository:** [https://git.donau2space.de/Mika/n40_time_measurement](https://git.donau2space.de/Mika/n40_time_measurement)
### Hinweis
Alle Inhalte wurden per KI generiert.
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich und auf eigenes Risiko.
Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
### Inhalt des Repositories
#### 1. clocksource_switch_analysis
- **Art:** python_script
- **Zielumgebung:** Linux Userspace
- **Sprachen:** Python
- **Zweck:** Analyse und Aggregation von 'clocksource_switch'-Ereignissen aus Rohdaten.
- **API-Funktion:**
- **aggregate_clocksource_data(raw_data)** → Gibt `aggregated_data` zurück.
- **Datenstruktur:** `aggregated_data` (JSON) mit Feldern:
- mean
- p50
- p95
- p99
- retry_free_rate
#### 2. sanity_check_tool
- **Art:** python_script
- **Zielumgebung:** Linux Userspace
- **Sprachen:** Python
- **Zweck:** Durchführung von Sanity-Checks auf den gemessenen Ereignissen.
- **API-Funktion:**
- **perform_sanity_check(run_summary)** → Gibt `sanity_results` zurück.
- **Datenstruktur:** `sanity_results` (JSON) mit Feldern:
- missing_write_pairs
- broken_corr_ids
- empty_fields
#### 3. results_visualization
- **Art:** web_ui
- **Zielumgebung:** Web
- **Sprachen:** HTML, CSS, JavaScript
- **Zweck:** Webbasierte Visualisierung der aggregierten Ergebnisse.
- **Routen:**
- **GET /results** Lädt die aggregierten Ergebnisse zur Anzeige.
- **CSS-Komponenten:** chart-style
- **JavaScript-Module:** chart-library
### Voraussetzungen (Webserver/DB)
- Installierter Webserver (z.B. Nginx oder Apache)
- Unterstützung für statische HTML-, CSS- und JS-Dateien
- Optional: Backend-Endpunkt zur Bereitstellung der aggregierten JSON-Ergebnisse
### Starten der Anwendung
1. Webserver starten und `results_visualization`-Verzeichnis bereitstellen.
2. Browser öffnen und auf `/results` zugreifen, um die visuellen Darstellungen zu laden.
### Installation & Nutzung
Da mehrere Python-Komponenten vorhanden sind, sollte eine saubere virtuelle Umgebung genutzt werden:
1. Python3.8 installieren.
2. Virtuelle Umgebung einrichten:
`python3 -m venv venv && source venv/bin/activate`
3. Abhängigkeiten installieren:
`pip install -r requirements.txt`
4. Analyseskript ausführen:
`python clocksource_switch_analysis.py input_data.json`
5. Sanity-Check durchführen:
`python sanity_check_tool.py aggregated_data.json`
### Typische Use-Cases
- Untersuchung der Stabilität von Clocksource-Mechanismen.
- Validierung von Kernel-Ereignisdaten mittels Sanity-Checks.
- Visualisierung und Vergleich mehrerer Messläufe.
- Entwicklung weiterführender Analysemetriken auf Basis strukturierter Aggregationsdaten.
### Struktur & Erweiterbarkeit
- **Analyse:** Kernlogik in `clocksource_switch_analysis`.
- **Validierung:** Separate Prüfung der Datenintegrität über `sanity_check_tool`.
- **Präsentation:** Webbasierte Darstellung in `results_visualization`.
Zukünftige Erweiterungen können zusätzliche Eventtypen oder neue Visualisierungsoptionen integrieren.
### Lizenz
Dieses Repository steht unter der **MIT-Lizenz**. Nutzung und Weiterverbreitung sind unter Einhaltung der Lizenzbedingungen gestattet.
---
Automatisch generierte technische Dokumentation ohne Gewähr.