3.10. レイテンシートレースの使用 trace-cmd

trace-cmd は、ftrace へのフロントエンドツールです。/sys/kernel/debug/tracing/ ディレクトリーへの書き込みを必要とせずに、以前に説明した ftrace 対話を有効にすることができます。これは、特別なトレースカーネルバリアントなしでインストールでき、インストール時にはオーバーヘッドは追加されません。
  1. trace-cmd ツールをインストールするには、root で以下のコマンドを入力します。
    ~]# yum install trace-cmd
  2. ユーティリティーを起動するには、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 の詳細説明 を参照してください。
  3. この例では、trace-cmd ユーティリティーは単一のトレースポイントを追跡します。
    ~]# trace-cmd record -e sched_wakeup ls /bin