3.10. trace-cmd を使用したレイテンシートレース
trace-cmd は ftrace のフロントエンドツールです。
/sys/kernel/debug/tracing/ ディレクトリーに書き込むことなく、前述の ftrace の 相互作用を有効にすることができます。これは、特別なトレースカーネルバリアントなしでインストールでき、インストール時にはオーバーヘッドは追加されません。
- trace-cmd ツールをインストールするには、
rootとして次のコマンドを入力します。yum install trace-cmd
~]# yum install trace-cmdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ユーティリティーを起動するには、次の構文を使用して、シェルプロンプトで trace-cmd と必要なオプションを入力します。
trace-cmd command
~]# trace-cmd commandCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例を以下に示します。trace-cmd record -p function myapp
~]# trace-cmd record -p function myappCopy to Clipboard Copied! Toggle word wrap Toggle overflow myapp の実行中に、カーネル内で実行中の録画機能を有効にして開始します。これは、myapp に無関係なタスクであっても、すべての CPU およびすべてのタスクの関数を記録します。trace-cmd report
~]# trace-cmd reportCopy to Clipboard Copied! Toggle word wrap Toggle overflow 結果を表示します。trace-cmd record -p function -l 'sched*' myapp
~]# trace-cmd record -p function -l 'sched*' myappCopy to Clipboard Copied! Toggle word wrap Toggle overflow myapp の 実行中にschedで始まる関数のみを記録します。trace-cmd start -e irq
~]# trace-cmd start -e irqCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべての IRQ イベントを有効にします。trace-cmd start -p wakeup_rt
~]# trace-cmd start -p wakeup_rtCopy to Clipboard Copied! Toggle word wrap Toggle overflow waitup_rt トレーサーを開始します。trace-cmd start -p preemptirqsoff -d
~]# trace-cmd start -p preemptirqsoff -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow preemptirqsoff トレーサーを開始しますが、その際に関数のトレースを無効にします。注意: Red Hat Enterprise Linux 7 の trace-cmd のバージョンでは 、function-trace オプションを使用する代わりに ftrace_enabled を オフにします。trace-cmd start -p function で再度有効にすることができます。trace-cmd start -p nop
~]# trace-cmd start -p nopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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
~]# trace-cmd record -e sched_wakeup ls /binCopy to Clipboard Copied! Toggle word wrap Toggle overflow