Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

C.2. トレースポイント

トレースポイントは /sys/kernel/debug/tracing/ ディレクトリーにあります。これは、debugfs が標準の場所である /sys/kernel/debug ディレクトリーにマウントされていることを前提としています。events サブディレクトリーには、指定可能な全トレーシングイベントが格納されています。また、gfs2 モジュールがロードされている場合には、gfs2 サブディレクトリーがあり、GFS2 イベントごとの更なるサブディレクトリーが格納されています。/sys/kernel/debug/tracing/events/gfs2 の内容は、大体以下のように表示されます。
[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
GFS2 トレースポイントをすべて有効化するには、以下のコマンドを実行します。
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
特定のトレースポイントを有効化するために、各イベントサブディレクトリーに enable ファイルがあります。また、各イベントまたはイベントセットを対象にイベントフィルターを設定するのに使用できる filter ファイルの場合も同じです。各イベントの意味については、下記に詳しく説明しています。
トレースポイントからの出力は、ASCII またはバイナリ形式で提供されます。本付録には、現在バイナリインターフェースについては記載していません。ASCII インターフェースは 2 つの方法で利用することができます。以下のコマンドを実行すると、現在のリングバッファーの内容を一覧表示することができます。
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
このインターフェースは、ある一定の期間に長時間実行されるプロセスを使用する場合や、何らかのイベントの後にバッファー内にキャプチャーされている最新の情報を確認したい場合に役立ちます。もう一つのインターフェースは /sys/kernel/debug/tracing/trace_pipe で、前出力が必要な場合に使用することができます。イベントは、発生すると同時にこのファイルから読み取ることができます。このインターフェースでは履歴情報は提供されません。出力の形式は両インターフェースとも同じで、 本付録の後半で GFS2 イベント別に説明しています。
トレースポイントのデータの読み取りには、trace-cmd と呼ばれるユーティリティを利用することができます。このユーティリティについての更なる詳しい情報は、「参考文献」 に記載のリンクを参照してください。trace-cmd ユーティリティは strace ユーティリティと同様に使用することができ、様々なソースからトレースデータを収集している間にコマンドを実行することが可能です。