Neues bei Fedora 13, Teil 2: Systemtap

28.05.2010

 

Zugegeben, Systemtap gab es auch schon in älteren Fedora-Versionen. Damit ließen sich schon bisher Anwendungen auf der Ebene von Systemaufrufen tracen und somit beispielsweise Performance-Engpässe und Fehler finden - ähnlich wie beispielsweise unter (Open) Solaris mit DTrace. Neu in Fedora 13 sind bei Systemtap aber so genannte Static Probes, also eigens in eine Anwendung eingefügte Trace-Punkte, die ein Tracing auf einer höheren Ebene als Systemcalls erlauben.

Um Systemtap selbst einzusetzen, müssen Sie die Pakete "kernel-debuginfo", "kernel-devel", "systemtap" und "systemtap-runtime" installieren. Achten Sie allerdings auf die installierte Kernel-Version: Bei unserem Test war ein PAE-Kernel installiert und so war es nötig, von Hand das Paket "kernel-PAE-devel" statt "kernel-devel" zu installieren. Das gleiche gilt für das Debuginfo-Paket des Kernels. Sind alle Pakete installiert, testen Sie die Funktion mit:

stap -v -e 'probe vfs.read {printf("Lesevorgang"); exit()}'

Wie man sieht ist die Syntax eine Mischung aus einer Skriptsprache und der Programmiersprache C. Nach dem Schlüsselwort "probe" folgt der zu tracende Systemaufruf, in diesem Fall "read", des Subsystems "vfs". Der Block in geschweiften Klammern legt fest, was beim Auftreten dieses Systemcalls passieren soll. Hier gibt das Skript einfach eine kurze Meldung aus und beendet sich dann. Die folgende Variante gibt noch die PID des lesenden Prozesses aus:

stap -v -e 'probe vfs.read {printf("Lesevorgang von %d\n", pid()); exit()}'

Wer Userspace-Programme tracen will, braucht dafür jeweils das passende Debug-Info-Paket, das die Symbole der enthaltenen Funktionen enthält. Mit dem folgenden Befehl lässt sich dann zum Beispiel das Ls-Kommando verfolgen:

stap -e 'probe process("ls").function("*").call {log (pp())}' -c 'ls -l'

Mehr Informationen zum Einsatz von Systemtap gibt ein Artikel im aktuellen ADMIN 03/2010.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019