Red Hat Training

A Red Hat training course is available for RHEL 8

28.2. perf 循環バッファーを使用したパフォーマンスのボトルネックを監視するための特定のデータの収集

perf ツールを使用すると、関心のあるデータのみを収集するために指定したイベントによってトリガーされる循環バッファーを作成できます。イベント固有のデータを収集する循環バッファーを作成するには、perf--overwrite および --switch-output-event オプションを使用します。

前提条件

  • perf のインストール で説明されているように、perf ユーザー領域ツールがインストールされている。
  • プロセスまたはアプリケーション内の関心のある場所に、監視したいプロセスまたはアプリケーションに uprobe を配置している。

    # perf probe -x /path/to/executable -a function
    Added new event:
      probe_executable:function   (on function in /path/to/executable)
    
    You can now use it in all perf tools, such as:
    
            perf record -e probe_executable:function -aR sleep 1

手順

  • トリガーイベントとして uprobe を使用して循環バッファーを作成します。

    # perf record --overwrite -e cycles --switch-output-event probe_executable:function ./executable
    [ perf record: dump data: Woken up 1 times ]
    [ perf record: Dump perf.data.2021021012231959 ]
    [ perf record: dump data: Woken up 1 times ]
    [ perf record: Dump perf.data.2021021012232008 ]
    ^C[ perf record: dump data: Woken up 1 times ]
    [ perf record: Dump perf.data.2021021012232082 ]
    [ perf record: Captured and wrote 5.621 MB perf.data.<timestamp> ]

    この例では、実行可能ファイルを開始し、-e オプションの後に指定された CPU サイクルを、perf--switch-output-event オプションの後に指定されたトリガーイベントである uprobe を検出するまで収集します。この時点で、perf は循環バッファーにあるすべてのデータのスナップショットを取得し、タイムスタンプで識別される一意の perf.data ファイルに保存します。この例では、合計 2 つのスナップショットが生成され、最後の perf.data ファイルは Ctrl+c を押すことによって強制されました。