C.2. Tracepoints
Sie finden die Tracepoints im Verzeichnis
/sys/kernel/debug/tracing/
, sofern debugfs
im standardmäßigen Verzeichnis /sys/kernel/debug
eingehängt ist. Das events
-Unterverzeichnis enthält alle Ereignisse, die nachverfolgt werden können. Sofern das gfs2
-Modul geladen ist, gibt es ebenfalls ein gfs2
-Unterverzeichnis mit weiteren Unterverzeichnissen, eins für jedes GFS2-Ereignis. Der Inhalt des Verzeichnisses /sys/kernel/debug/tracing/events/gfs2
sieht etwa wie folgt aus:
[root@chywoon gfs2]# ls
enable gfs2_bmap gfs2_glock_queue gfs2_log_flush
filter gfs2_demote_rq gfs2_glock_state_change gfs2_pin
gfs2_block_alloc gfs2_glock_put gfs2_log_blocks gfs2_promote
Um alle GFS2-Tracepoints zu aktivieren, führen Sie den folgenden Befehl aus:
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
Um einen bestimmten Tracepoint zu aktivieren, gibt es eine
enable
-Datei in jedem der Ereignis-Unterverzeichnisse. Das gleiche gilt für die filter
-Datei, die verwendet werden kann, um eine Filterfunktion für jedes Ereignis oder eine Reihe von Ereignissen einzustellen. Die Bedeutung der einzelnen Ereignisse wird im Folgenden näher erläutert.
Die Ausgabe der Tracepoints ist in ASCII-oder Binär-Format verfügbar. Dieser Anhang behandelt derzeit nicht die binäre Schnittstelle. Die ASCII-Schnittstelle ist auf zwei Arten verfügbar. Um den aktuellen Inhalt des Ringpuffers anzuzeigen, führen Sie den folgenden Befehl aus:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
Diese Schnittstelle ist nützlich in Fällen, in denen Sie einen lang andauernden Prozess für einen bestimmten Zeitraum verwenden und nach einem bestimmten Ereignis einen Rückblick auf die letzten erfassten Informationen im Puffer wollen. Eine alternative Schnittstelle,
/sys/kernel/debug/tracing/trace_pipe
, kann verwendet werden, wenn die gesamte Ausgabe benötigt wird. Die Ereignisse werden aus dieser Datei gelesen, wie sie auftreten, über diese Schnittstelle sind keine historischen Informationen verfügbar. Das Format der Ausgabe ist dasselbe für beide Schnittstellen und wird für jedes der GFS2-Ereignisse in den späteren Abschnitten dieses Anhangs beschrieben.
Zum Lesen der Tracepoint-Daten steht ein Dienstprogramm namens
trace-cmd
zur Verfügung. Weitere Informationen zu diesem Dienstprogramm finden Sie unter dem Link in Abschnitt C.10, »Verweise«. Das trace-cmd
-Dienstprogramm kann in ähnlicher Weise wie das strace
-Dienstprogramm verwendet werden, zum Beispiel zur Ausführung eines Befehls, während Trace-Daten aus verschiedenen Quellen gesammelt werden.