29.5. データの分析
OProfile デーモン oprofiled は定期的にサンプルを収集し、それらを
/var/lib/oprofile/samples/
ディレクトリーに書き込みます。データを読み取る前に、root で以下のコマンドを実行して、すべてのデータがこのディレクトリーに書き込まれていることを確認します。
~]# opcontrol --dump
各サンプルファイル名は、実行可能ファイルの名前に基づいています。たとえば、/bin/bash の Pentiumでのデフォルトイベントのサンプルは以下のようになります。
\{root\}/bin/bash/\{dep\}/\{root\}/bin/bash/CPU_CLK_UNHALTED.100000
以下のツールは、サンプルデータの収集後にサンプルデータのプロファイルに使用できます。
- opreport
- opannotate
これらのツールとバイナリープロファイルを使用して、さらに分析できるレポートを生成します。
実行ファイルとサンプルファイルをバックアップします。
プロファイルされる実行可能ファイルは、データを分析するためにこのツールと共に使用する必要があります。データの収集後に変更する必要がある場合は、サンプルファイルおよびサンプルファイルの作成に使用する実行ファイルをバックアップします。サンプルファイルとバイナリーが合意する必要がある点に注意してください。バックアップが一致しない場合には、バックアップは動作しません。この問題に対処するために oparchive を使用できます。
各実行可能ファイルのサンプルは、1 つのサンプルファイルに書き込まれます。動的にリンクされた各ライブラリーからのサンプルも、1 つのサンプルファイルに書き込まれます。OProfile が実行中に、変更がモニタリングされ、実行可能ファイルのサンプルファイルが存在する場合、既存のサンプルファイルが自動的に削除されます。したがって、既存のサンプルファイルが必要な場合は、実行ファイルを新バージョンに置き換える前に、作成に使用する実行ファイルと共にバックアップする必要があります。OProfile 分析ツールは、解析中にサンプルを作成した実行可能ファイルを使用します。実行ファイルが変更すると、分析ツールは関連するサンプルを分析しません。サンプルファイルをバックアップする方法は、「データの保存」 を参照してください。
29.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 列目は実行可能ファイルの名前です。
利用可能なコマンドラインオプションの一覧は、man ページの opreport を参照してください。たとえば、
-r
オプションでは、サンプルの最大数が最も少ない実行可能ファイルから、最大数のサンプルを持つ実行ファイルから出力をソートします。