3.10. レイテンシートレースの使用 trace-cmd
trace-cmd
は、ftrace へのフロントエンドツールです。/sys/kernel/debug/tracing/
ディレクトリーへの書き込みを必要とせずに、以前に説明した ftrace 対話を有効にすることができます。これは、特別なトレースカーネルバリアントなしでインストールでき、インストール時にはオーバーヘッドは追加されません。
trace-cmd
ツールをインストールするには、root
で以下のコマンドを入力します。~]#
yum install trace-cmd
- ユーティリティーを起動するには、
trace-cmd
シェルプロンプトで、以下の構文を使用して必要なオプションを入力します。~]#
trace-cmd command
コマンドの例を以下に示します。~]#
trace-cmd record -p function myapp
myapp の実行中に、カーネル内で実行中の録画機能を有効にして開始します。これは、myapp に無関係なタスクであっても、すべての CPU およびすべてのタスクの関数を記録します。~]#
trace-cmd report
結果を表示します。~]#
trace-cmd record -p function -l 'sched*' myapp
myapp の実行中に、sched
で開始する関数のみを記録します。~]#
trace-cmd start -e irq
すべての IRQ イベントを有効にします。~]#
trace-cmd start -p wakeup_rt
wakeup_rt
トレーサーを起動します。~]#
trace-cmd start -p preemptirqsoff -d
preemptirqsoff
トレーサーを起動しますが、これにより関数トレースが無効になります。Red Hat Enterprise Linux 7 の trace-cmd のバージョンは、このfunction-trace
オプションを使用する代わりにftrace_enabled
をオフにします。trace-cmd start -p function
で再度有効にできます。~]#
trace-cmd start -p nop
システムの変更を trace-cmd 開始する前に、システムを復元します。これは、trace-cmd の使用後に debugfs ファイルシステムを使用する場合、システムが再起動されたかどうかに関係なく重要です。
注記
コマンドおよびオプションの完全なリストは、man ページの trace-cmd(1) を参照してください。すべての個々のコマンドには、独自の man ページ trace-cmd-コマンド もあります。イベントトレースおよび関数トレーサーの詳細は、付録A イベントトレース および 付録B Ftrace の詳細説明 を参照してください。 - この例では、
trace-cmd
ユーティリティーは単一のトレースポイントを追跡します。~]#
trace-cmd record -e sched_wakeup ls /bin