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 を押すことによって強制されました。