43.2.2. イベントのモニターへの設定
ほとんどのプロセッサーには カウンター が含まれます。これは、OProfile が特定のイベントを監視するために使用します。表43.2「OProfile プロセッサーおよびカウンター」 で示されているように、利用可能なカウンターの数はプロセッサーによって異なります。
プロセッサー | cpu_type | カウンターの数 |
---|---|---|
Pentium Pro | i386/ppro | 2 |
Pentium II | i386/pii | 2 |
Pentium-24 | i386/piii | 2 |
Pentium 4 (非スレッド) | i386/p4 | 8 |
Pentium 4 (ハイパースレッディング) | i386/p4-ht | 4 |
Athlon | i386/athlon | 4 |
AMD64 | x86-64/hammer | 4 |
Itanium | ia64/itanium | 4 |
Itanium 2 | ia64/itanium2 | 4 |
TIMER_INT | timer | 1 |
IBM eServer iSeries および 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 |
表43.2「OProfile プロセッサーおよびカウンター」 を使用して、正しいプロセッサータイプが検出され、同時に監視できるイベントの数を判断します。プロセッサーがパフォーマンス監視ハードウェアに対応していない場合は、
タイマー
がプロセッサータイプとして使用されます。
timer
を使用すると、ハードウェアがハードウェアパフォーマンスカウンターをサポートしないため、イベントをプロセッサーに設定できません。代わりに、タイマー割り込みがプロファイリングに使用されます。
タイマー
がプロセッサータイプとして使用されていない場合は、監視されるイベントを変更できます。また、プロセッサーのカウンター 0 はデフォルトで時間ベースのイベントに設定されます。プロセッサーに複数のカウンターが存在する場合は、カウンター 0 以外のカウンターはデフォルトでイベントに設定されていません。監視されるデフォルトイベントは 表43.3「デフォルトのイベント」 に表示されます。
プロセッサー | カウンターのデフォルトイベント | 説明 |
---|---|---|
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 の相関ではありません。一部のプロセッサーでは、特定のイベントを特定のカウンターにマッピングする必要があります。利用可能なカウンターの数を確認するには、以下のコマンドを実行します。
ls -d /dev/oprofile/[0-9]*
利用可能なイベントは、プロセッサーのタイプによって異なります。プロファイリングに使用できるイベントを確認するには、root で以下のコマンドを実行します(一覧はシステムのプロセッサータイプに固有のものです)。
ophelp
各カウンターのイベントは、コマンドラインまたはグラフィカルインターフェイスで設定できます。グラフィカルインターフェイスの詳細は、「グラフィカルインターフェイス」 を参照してください。カウンターを特定のイベントに設定できない場合は、エラーメッセージが表示されます。
コマンドラインで設定可能な各カウンターのイベントを設定するには、opcontrol を使用します。
opcontrol --event=<event-name>:<sample-rate>
& lt;event-name& gt; を ophelp からの正確なイベント名に置き換え、< sample-rate > をサンプル間のイベント数に置き換えます。
43.2.2.1. サンプリングレート
デフォルトでは、時間ベースのイベントセットが選択されます。プロセッサーごとに 100,000 個のクロックサイクルごとにサンプルを作成します。タイマー割り込みが使用される場合、タイマーは jiffy レートに設定され、ユーザーが設定できません。
cpu_type
が timer
でない場合、各イベントには サンプリングレート を設定できます。サンプリングレートは、各サンプルスナップショット間のイベント数です。
カウンターにイベントを設定する場合は、サンプルレートを指定することもできます。
opcontrol --event=<event-name>:<sample-rate>
< ;sample-rate> を、再度サンプリングするまで待機するイベント数に置き換えます。カウントが小さいほど、サンプルの頻度が高くなります。頻繁に発生しないイベントの場合は、イベントインスタンスを取得するのに少ない数が必要になる場合があります。
注意
サンプリングレートを設定する場合は細心の注意を払ってください。サンプリングが頻繁になりすぎると、システムの負荷が過剰になり、システムがフリーズしているかのように表示されるか、システムが実際にフリーズします。