Analyse von Traces

Posted by

Einleitung

Der nachfolgende Artikel beschäftigt sich mit der Thematik „Analyseprogramme von Traces aus der Informatik“,  dies ist der Nachfolge Artikel von „Tracing – Eine Alternative zum debuggen“. Dieser Artikel soll einen kurzen und prägnanten Über- und Einblick in den Analyseprogrammen geben, welches mit Hilfe eines Beispiels erläutert wird.

Als erstes wird erklärt was unter dem Begriff Analyseprogramme verstanden wird. Darauf folgen einige mögliche Anwendungsgebiete. Nach diesen wird ein Beispiel gezeigt und erklärt an Hand des Programmes Trace Compass.

Begriffserklärung

Das Wort Analyseprogramm verdeutlicht sehr gut, was solche Programme als Aufgabe haben. Ein Analyseprogramm soll den Input, den es bekommt, analysieren und einen analysierten Output geben, welcher dann meist für den Anwender verständlicher ist. Da es sich in diesen Artikel n um Trace-Analyseprogramme handelt, ist der Input hier die „rohen“ Traces und als Output sollen dann die Analysen und weitaus verständlicheren Informationen gegeben werden. Als „rohe“ Traces sind die nur aufgezeichneten und unbehandelten Traces nach einem Trace-Verfahren gemeint.

Anwendungsgebiete

Die Anwendungsgebiete solcher Programme sind mit denen von Traces relativ deckungsgleich, da diese quasi eine Folge sind von den Traces. Üblicherweise würde ein System getraced werden und der Trace danach analysiert. Zwar ist das Ziel von solchen Programmen Traces besser zu verstehen, allerdings ist das Gesamtziel die Aufzeichnung eines Systemverhaltens. Daher kann das Tracen und die Analyse von den Traces als eine schrittweise Aufzeichnung verstanden werden.

Beispiel

Um ein Beispiel eines Trace-Analyseprogrammes darzustellen, wird ein Programmausschnitt aus dem Programm Trace Compass [1] gezeigt. Hier wird kurz auf den dargestellten Programmausschnitt eingegangen, bevor der Programmausschnitt gezeigt wird. Im Programmausschnitt wird ein Linux Kernel Trace analysiert und grafisch dargestellt.

Rote Markierung: Das ist der Control Flow, in diesen werden alle Prozesse aus dem Trace angezeigt. Der erste Bereich Process zeigt den Namen des Prozesses an. TID steht für Thread Identifier und zeigt somit die Identifier-Nummer des Threads oder Prozesses an. PTID steht für Parent Thread Identifier und zeigt den Identifier des Elternthreads oder –prozesses an.  Folgend wird die Birthtime angezeigt und bedeutet wann der Thread oder Prozess erzeugt wurde. Danach folgt noch eine grafisch dargestellt Timeline der Prozesse.

Blaue Markierung:  Das sind die Resources, in diesem Bereich werden die Quellen der Prozesse dargestellt. Im ersten Bereich werden die Namen der Quellen angezeigt. Danach folgt eine grafische Darstellung des Status des Prozesses.

Grüne Markierung: Das sind die „rohen“ Informationen des Traces. Timestamp ist der Zeitstempel von dem Event. Channel ist der Event-Channel, dieser dient dazu, dass die Events ihre Benachrichtigung senden können. CPU zeigt an von welcher CPU das Event behandelt wurde. Der Event-Type zeigt an was für ein Typ das Event ist. Content zeigt an was für Nutzdaten das Event hat. TID ist der Identifier des Threads oder Prozesses zu dem das Event gehört. Die Prio ist die Priorität des Events.

Gelbe Markierung: Das ist das Histogramm. Dieses zeigt die Event-Verteilung in Betrachtung der Zeit an.

Der Programmausschnitt:

kernel

 Programmausschnitt 1 Kernel Trace im Analyseprogramm

Der Programmausschnitt zeigt den Kernel Analyse Bildschirm von Trace Compass. Dieser analysiert einen Linux-Kernel-Trace. Angezeigt werden die Stati von den Prozessen und Ressourcen über der Zeit des Traces.

Das Programm Trace Compass bietet entsprechend noch einige andere Features für die Analyse und  Bearbeitung von Traces. Allerdings sind hier nicht alle aufgelistet, da es die Größe dieses Artikels übersteigen würde.

Falls ihr nach dem Lesen des Artikels noch Fragen, Kritiken oder Anregungen habt, schreibt uns diese bitte in die Kommentare.

Quellen:

[1] Trace Compass, „tracecompass,“ [Online]. Available: http://tracecompass.org/img/shots/kernel.png.

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*