Immer größere Datenmassen sicher zu speichern ist eine Herausforderung für jede IT-Infrastruktur. Schon mit Gigabit-Ethernet lassen sich aber ... (mehr)

Gutes Timing

Eine andere Gruppe von Optionen, die zur Ausgabe von Zeitstempeln dient, ist hilfreich, wenn ein Programm hängt oder sehr langsam ist. Damit lassen sich problematische Stellen lokalisieren. Die Schalter »-t« , »-tt« und »-ttt« geben jeweils zu Beginn jeder Zeile die absolute Zeit in Sekunden respektive Mikrosekunden aus. Die Option »-T« zeigt daraufhin, wie lange jeder einzelne Systemaufruf gedauert hat, »-r« gibt einen relativen Zeitstempel aus.

Mit »-c« aufgerufen gibt Strace am Ende eine Statistik aus, die die Anzahl der Aufrufe, aufgetretene Fehler und die Dauer der Systemaufrufe dokumentiert. Das ist ganz praktisch, wenn der Admin einen Fehler sucht, aber nicht recht weiß, wo er anfangen soll.

Um die Ausgabe noch etwas zu verkürzen, bietet Strace zusätzlich die Möglichkeit an, mit »-e« nach bestimmten Systemaufrufen zu filtern. Dann protokolliert »strace -e trace=open,read,write« nur die Syscalls »open()« , »read()« und »write()« . So können Sie sich zum Beispiel nur jene Aufruf anzeigen lassen, die in der Ausgabe von »-c« verdächtig erscheinen. Umgekehrt zeigt »-v« alles etwas ausführlicher.

Skript-Wrapper als Notnagel

Da es nicht immer möglich ist, ein Programm unter Produktionsbedingungen zu testen, hilft es manchmal, einen Shell-Wrapper zu verwenden, um es mit Strace debuggen zu können. Benennen Sie das Programm zum Beispiel in »Befehl.alt« um. Das Skript in Listing 8 speichern Sie dann unter dem Namen »Befehl« .

Listing 8

Shell-Wrapper

 

Damit wird das ursprüngliche Kommando unter Strace-Kontrolle ausgeführt, wobei jedes Mal ein neues Logfile entsteht. Vergessen Sie aber nicht, nach dem Debuggen dem Programm seinen ursprünglichen Namen zurückzugeben.

Praktisch ist auch der Strace-Schalter »-p Prozess-ID« . Mit ihm können Sie schon laufende Programme debuggen. Wenn Sie beispielsweise in der Prozessliste einen Prozess sehen, der viel Rechenzeit verbraucht, können Sie so nachsehen, was er gerade macht.

Ähnliche Artikel

comments powered by Disqus
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

Ausgabe /2023