OProfileは、 低オーバーヘッドなシステムパフォーマンス監視ツールです。プロセッサのパフォーマンス監視ハードウェアを使用して メモリー参照時、L2キャッシュ要求数、ハードウェア割り込み回数など システム上 のカーネルや実行可能ファイルの情報を読み出します。 Red Hat Enterprise Linuxシステムで このツールを使用する場合は、oprofile RPM パッケージの インストールが必要です。
プロセッサの多くには専用のパフォーマンス監視ハードウェアが内蔵されています。 このハードによって、特定のイベント(例えば要求データがキャッシュにない場合など)の発生を検出することができます。 このハードウェアは通常、イベント発生毎に増分される1つ以上のカウンタ によって構成されます。 カウンタ値が"変わる"時に割り込みを行なえるため、パフォーマンス監視に よって生成される詳細情報量(とオーバーヘッド)を制御することができます。
OProfile はこのハードウェア(パフォーマンス監視ハードウェアがない場合は タイマベースの代用品)を使用して、 カウンタが割り込みをカウントするたびパフォーマンス関連データのサンプルを収集します。 サンプルは周期的にディスクに書き込みされます。 サンプルのデータは後にシステム レベル、アプリケーションレベルのパフォーマンスレポート生成に 使用されます。
![]() | 重要 |
---|---|
Red Hat Enterprise Linux 3に対するOProfileのカーネルサポートは 2.5 開発カーネルでバックポートされたコードが基になっています。 OProfileドキュメントを参照する場合、カーネルのバージョンが2.4でも2.5 特有の機能がRed Hat Enterprise Linux 3 のOProfileに適応されます。同様に、2.4カーネル特有のOProfile機能はRed Hat Enterprise Linux 3には 適用されません。 |
OProfileは便利なツールですが、 使用の限界を認識して使用してください。
共有ライブラリの使用 — --separate=libraryオプションを使用しないと、 共有ライブラリ のコードに対するサンプルは特定アプリケーションに帰属されません。
パフォーマンス監視のサンプルは不正確 — パフォーマンス監視レジスタがサンプルをトリガする場合、zero divide (ゼロで割る)例外と同様に割り込みが不正確になります。 プロセッサがアウトオブオーダーの実行を命令するため、サンプルは手近な 命令に記録される場合があります。
oprofppによる インライン機能のサンプルが不正確に関連される — oprofpp は単純なアドレスレンジ メカニズムを使用し、 どの機能にアドレスが含まれるかを判断します。インライン機能のサンプルは インライン機能には帰属されず、 インライン機能が挿入された機能に帰属されます。
OProfileは複数実行によりデータを蓄積する — OProfile はシステム全体のプロファイラで、プロセスによる 起動や終了が複数回行なわれるようになっています。そのため複数実行によりサンプルが増大します。 opcontrol --reset コマンドを使用し、前回実行時のサンプルを削除して下さい。
CPU制限パフォーマンス以外の問題 — OProfile はCPU制限プロセスによって問題を検出します。 休止状態のプロセスはロックなどのイベント待ち状態であるため、 Oprofileでは検出されません。(オペレーションを完了するI/O装置など)
Red Hat Enterprise Linuxではマルチプロセッサ(SMP)カーネルのみが OProfileのサポート有効となっています。 実行中のカーネルを検出するには、次のコマンドを入力して下さい。
uname -r |
.entsmpで終るカーネルバージョンが表示された 場合、マルチプロセッサ カーネルが実行中です。そうでない場合は、マルチプロセッサシステムでなくても 配布CD又はRed Hat Networkを介して インストールして下さい。 マルチプロセッサカーネルにてシングルプロセッサを実行することができます。
表43-1で oprofile パッケージより提供されるツールの概要を参照できます。
コマンド | 説明 |
---|---|
opcontrol | 収集データを設定します。 詳細は項43.2を参照下さい。 |
op_help | システムプロセッサの使用可能イベントとその簡単な説明が表示されます。 |
op_merge | 同じ実行可能ファイルから、複数サンプルを結合します。詳細は 項43.5.4をご参照下さい。 |
op_time | プロファイルされた実行可能ファイル全ての概要を表示します。 詳細は項43.5.1 を参照下さい。 |
op_to_source | アプリケーションがデバッギングシンボルでコンパイルされた場合に実行可能 ファイルの注釈付きソースを作成します。詳細は 項43.5.3 を参照下さい。 |
oprofiled | 周期的にディスクへサンプルデーターを書き込むため、デーモンとして 実行されます。 |
oprofpp | プロファイルデータを読み出します。詳細は 項43.5.2 を参照下さい。 |
op_import | foreignバイナリ形式のサンプルデータベースファイルをシステムの native形式に変換します。 異なるアーキテクチャからサンプルデーターベース を分析する場合のみ、このオプション使用して下さい。 |
表 43-1. OProfileのコマンド