43.5. データの分析
OProfile デーモン oprofiled は、定期的にサンプルを収集し、それらを
/var/lib/oprofile/samples/
ディレクトリーに書き込みます。データを読み取る前に、root で以下のコマンドを実行して、すべてのデータがこのディレクトリーに書き込まれることを確認します。
opcontrol --dump
各サンプルファイル名は、実行可能ファイルの名前に基づいています。たとえば、/bin/bash の Pentium-24 プロセッサーにおけるデフォルトイベントのサンプルは以下のようになります。
\{root\}/bin/bash/\{dep\}/\{root\}/bin/bash/CPU_CLK_UNHALTED.100000
以下のツールは、サンプルデータが収集されるとプロファイルできます。
- opreport
- opannotate
これらのツール、およびバイナリープロファイルを使用して、さらに分析できるレポートを生成します。
Warning
プロファイル化される実行ファイルは、データを分析するためにこれらのツールと共に使用する必要があります。データの収集後に変更する必要がある場合は、サンプルの作成に使用される実行ファイルとサンプルファイルをバックアップします。サンプルファイルとバイナリーは合意する必要がある点に注意してください。バックアップを作成しないと、バックアップは機能しません。oparchive を使用すると、この問題に対処できます。
各実行可能ファイルのサンプルは、1 つのサンプルファイルに書き込まれます。動的にリンクされた各ライブラリーからのサンプルも、単一のサンプルファイルに書き込まれます。OProfile の実行中に、監視対象の実行ファイルに変更があり、実行ファイルのサンプルファイルが存在する場合は、既存のサンプルファイルが自動的に削除されます。したがって、既存のサンプルファイルが必要な場合は、実行ファイルを新しいバージョンに置き換える前に、作成した実行ファイルと共にバックアップする必要があります。oprofile 分析ツールは、分析中にサンプルを作成した実行可能ファイルを使用します。実行ファイルが変更されると、分析ツールは関連するサンプルを分析できません。サンプルファイルをバックアップする方法は、「データの保存」 を参照してください。
43.5.1. opreportの使用
opreport ツールは、プロファイリングされるすべての実行ファイルの概要を提供します。
以下は、サンプル出力の一部です。
Profiling through timer interrupt TIMER:0| samples| %| ------------------ 25926 97.5212 no-vmlinux 359 1.3504 pi 65 0.2445 Xorg 62 0.2332 libvte.so.4.4.0 56 0.2106 libc-2.3.4.so 34 0.1279 libglib-2.0.so.0.400.7 19 0.0715 libXft.so.2.1.2 17 0.0639 bash 8 0.0301 ld-2.3.4.so 8 0.0301 libgdk-x11-2.0.so.0.400.13 6 0.0226 libgobject-2.0.so.0.400.7 5 0.0188 oprofiled 4 0.0150 libpthread-2.3.4.so 4 0.0150 libgtk-x11-2.0.so.0.400.13 3 0.0113 libXrender.so.1.2.2 3 0.0113 du 1 0.0038 libcrypto.so.0.9.7a 1 0.0038 libpam.so.0.77 1 0.0038 libtermcap.so.2.0.8 1 0.0038 libX11.so.6.2 1 0.0038 libgthread-2.0.so.0.400.7 1 0.0038 libwnck-1.so.4.9.0
各実行可能ファイルは、それぞれの行に一覧表示されます。最初の列は、実行ファイルに対して記録されたサンプル数です。2 番目のコラムは、サンプルの合計数に対するサンプルの割合です。3 列目は、実行ファイルの名前です。
利用可能なコマンドラインオプションのリストについては opreport の man ページを参照してください。たとえば、サンプルの数が最も少ない実行可能ファイルから、サンプル数が最も多いものに並べ替えるために使用される
-r
オプションなどです。