Performanceanalyse mit Linux
Performanceanalyse mit Linux
Einfache Tools
- ps(1)
- zeigt einen statischen Snapshot von Informationen über die Prozesse.
Man kann aber ps im Script aufrufen, und jede Sekunde einen Wert (z.B. die Grösse des virtuellen Adressraums aufrufen, und dieses per Gnuplot visualisieren, bspw. hier ist so eine Untersuchung
- pstree(1)
- Zeigt die Vater-Kind-Beziehungen der Prozesse
- top(1)
- zeigt die dynamische Sicht, die aufdatiert wird
htop ist andere Prozessanzeiger
- vmstat(8)
- zeigt den Zustand des virtuellen Speichersystems mit Ein- und Auslagerungen
Auch mit diesen einfachsten Tools kann mit mit Hilfe des Unix-Werkzeugkasten und einer Scriptsprache Perl aund Gnuplot Speicheranalysen erstellen, siehe z.B. Untersuchung eines Counterbeispiels mit Mozilla-Browser und JavaVM
Detailierte Tools
- perf - ein Tool, welches Hardwarecounter des Prozessors sowie Betriebssystemereignisse auswertet
- Der Linuxkern hat eine Profiling-Unterstützung CONFIG_PROFILER
Profiler: Oprofile
- BSD-Process-Accouting : Linuxkern CONFIG_BSD_PROCESS_ACCT.
Sammelt der Kern Daten über Prozesse und kann sie nach der Beendigung in eine Datei schreiben, die dann ausgewertet werden können, um Nutzungsprofile zu sammeln.
Weitere Funde im Kern:
- CONFIG_KPROBES
- man kann an fast allen Kern-adressen unterbrechen und eine callback-Funktion aufrufen lassen- zum Kerndebugging, Instrumentierungen und Testen
(??? Wie kann man das nutzen ?)
- Tracepoints
- The Linux Kernel Tracepoint API
Linux Trace Tool
LTTng zeichnet Ereignisse in Linux auf, sowohl von Anwendungsprogrammen, als auch aus dem Kern.