40.2.2. 監視するイベントの設定
ほとんどのプロセッサーには カウンター が含まれており、これは特定のイベントを監視するために OProfile によって使用されます。表40.2「OProfile Processors and Counters」 で示されているように、利用可能なカウンターの数はプロセッサーによって異なります。
プロセッサー | cpu_type | カウンターの数 |
---|---|---|
Pentium Pro | i386/ppro | 2 |
Pentium II | i386/pii | 2 |
Pentium336 | i386/piii | 2 |
Pentium 4(hy-hyper- thread) | i386/p4 | 8 |
Pentium 4(ハイパースレッド) | i386/p4-ht | 4 |
Athlon | i386/athlon | 4 |
AMD64 | x86-64/hammer | 4 |
pidgin | ia64/itanium | 4 |
Itanium 2 | ia64/itanium2 | 4 |
TIMER_INT | timer | 1 |
IBM eServer iSeries and pSeries | timer | 1 |
ppc64/power4 | 8 | |
ppc64/power5 | 6 | |
ppc64/970 | 8 | |
IBM eServer S/390 および S/390x | timer | 1 |
IBM eServer zSeries | timer | 1 |
表40.2「OProfile Processors and Counters」 を使用して、正しいプロセッサータイプが検出され、同時に監視できるイベントの数を判断します。プロセッサーでパフォーマンス監視ハードウェアがサポートされていない場合は、
タイマー
がプロセッサータイプとして使用されます。
タイマー
を使用する場合は、ハードウェアのパフォーマンスカウンターに対応していないため、どのプロセッサーにもイベントも設定できません。代わりに、タイマー割り込みがプロファイリングに使用されます。
タイマー
がプロセッサータイプとして使用されていない場合は、監視されるイベントを変更し、プロセッサーのカウンター 0 はデフォルトで時間ベースのイベントに設定されます。プロセッサーに複数のカウンターが存在する場合は、カウンター 0 以外のカウンターはデフォルトでイベントには設定されません。監視されるデフォルトイベントは、表40.3「デフォルトイベント」 に表示されます。
プロセッサー | カウンターのデフォルトイベント | Description |
---|---|---|
Pentium Pro、Pentium II、Pentium II、Athlon、AMD64 | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
Pentium 4(HT および非 HT) | GLOBAL_POWER_EVENTS | プロセッサーが停止していない時間 |
Itanium 2 | CPU_CYCLES | CPU ライフサイクル |
TIMER_INT | (なし) | 各タイマー割り込みの例 |
ppc64/power4 | サイクル | プロセッサーサイクル |
ppc64/power5 | サイクル | プロセッサーサイクル |
ppc64/970 | サイクル | プロセッサーサイクル |
一度に監視できるイベントの数は、プロセッサーのカウンター数によって決定されます。ただし、1 対 1 の相関ではありません。一部のプロセッサーでは、特定のイベントを特定のカウンターにマップする必要があります。利用可能なカウンターの数を確認するには、以下のコマンドを実行します。
cat /dev/oprofile/cpu_type
利用可能なイベントはプロセッサーのタイプによって異なります。プロファイリングに使用できるイベントを確認するには、root で以下のコマンドを実行します(一覧はシステムのプロセッサータイプに固有のものです)。
op_help
各カウンターのイベントは、コマンドラインまたはグラフィカルインターフェースで設定できます。グラフィカルインターフェースの詳細は、「グラフィカルインターフェース」 を参照してください。カウンターを特定のイベントに設定しない場合は、エラーメッセージが表示されます。
コマンドラインで設定可能な各カウンターのイベントを設定するには、opcontrol を使用します。
opcontrol --event=<event-name>:<sample-rate>
& lt;event-name& gt; を op_help のイベントの正確な名前に置き換え、< sample-rate> をサンプル間のイベント数に置き換えます。
40.2.2.1. サンプリングレート
デフォルトでは、時間ベースのイベントセットが選択されます。プロセッサーごとに 100,000 クロックサイクルごとにサンプルを作成します。タイマー割り込みを使用する場合は、タイマーは jiffy レートがどれでも設定され、ユーザー設定のテーブルではありません。
cpu_type
が タイマー
でない場合、各イベントには サンプリングレート を設定できます。サンプリングレートは、各サンプルスナップショット間のイベント数です。
カウンターのイベントを設定する場合、サンプルレートを指定することもできます。
opcontrol --event=<event-name>:<sample-rate>
< ;sample-rate> を、再度サンプリングする前に待機するイベントの数に置き換えます。数値が小さいほど、サンプルが頻繁に使用されます。頻繁に発生しないイベントの場合、イベントインスタンスをキャプチャーするためにカウントが低くなることがあります。
Warning
サンプリングレートを設定する場合は十分に注意してください。サンプリングが頻繁にシステムをオーバーロードする可能性があります。これにより、システムがフリーズするか、システムが実際にフリーズするかのようにシステムが表示されます。