Wie Linux-Tracing-Systeme zusammenpassen
Zusammenfassung
Julia Evans ordnet strace, perf, ftrace, kprobes und BPF danach, welche Ereignisse sie beobachten und welchen Aufwand sie verursachen.
Ideen
- strace protokolliert Systemaufrufe eines Prozesses.
- perf zählt Hardwareereignisse und erstellt Stichprobenprofile.
- ftrace verfolgt Funktionen und Ereignisse im Kernel.
- BPF führt überprüfte Messprogramme an ausgewählten Hooks aus.
Einsichten
- Das beste Tracing-Werkzeug folgt aus der Frage und dem benötigten Messpunkt.
- Mehr Sichtbarkeit verursacht unterschiedliche Laufzeitkosten und Datenmengen.
- Mehrere Werkzeuge können dasselbe Symptom aus verschiedenen Schichten erklären.
Fakten
- Linux besitzt mehrere unabhängig entstandene Tracing-Subsysteme.
- kprobes setzt dynamische Messpunkte im Kernel.
- uprobes ermöglicht entsprechende Messpunkte in Userspace-Programmen.
Empfehlungen
- Formuliere zuerst Ereignis, Zielprozess und gewünschte Häufigkeit.
- Miss den Beobachtungsaufwand vor längeren Produktionsaufzeichnungen.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.