Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

29.2.2. 監視するイベントの設定

ほとんどのプロセッサーには カウンター が含まれており、これは特定のイベントを監視するために OProfile によって使用されます。表29.2「OProfile Processors and Counters」 で示されているように、利用可能なカウンターの数はプロセッサーによって異なります。

表29.2 OProfile Processors and Counters

プロセッサー cpu_type カウンターの数
AMD64 x86-64/hammer 4
AMD Athlon i386/athlon 4
AMD Family 10h x86-64/family10 4
AMD Family 11h x86-64/family11 4
AMD Family 12h x86-64/family12 4
AMD Family 14h x86-64/family14 4
AMD Family 15h x86-64/family15 6
IBM eServer System i および IBM eServer System p timer 1
IBM POWER4 ppc64/power4 8
IBM POWER5 ppc64/power5 6
IBM PowerPC 970 ppc64/970 8
IBM S/390 および IBM System z timer 1
Intel Core i7 i386/core_i7 4
Intel Nehalem microarchitecture i386/nehalem 4
Intel Pentium 4(hy-hyper- thread) i386/p4 8
Intel Pentium 4(ハイパースレッド) i386/p4-ht 4
Intel Westmere microarchitecture i386/westmere 4
TIMER_INT timer 1
表29.2「OProfile Processors and Counters」 を使用して、正しいプロセッサータイプが検出され、同時に監視できるイベントの数を判断します。timer プロセッサーがパフォーマンス監視ハードウェアに対応していない場合は、プロセッサータイプとして使用されます。
timer を使用する場合は、ハードウェアのパフォーマンスカウンターをサポートしないため、どのプロセッサーにもイベントも設定できません。代わりに、タイマー割り込みがプロファイリングに使用されます。
timer がプロセッサータイプとして使用されていない場合は、監視されるイベントを変更し、プロセッサーのカウンター 0 はデフォルトで時間ベースのイベントに設定されます。プロセッサーに複数のカウンターが存在する場合は、カウンター 0 以外のカウンターはデフォルトでイベントには設定されません。監視されるデフォルトイベントは、表29.3「デフォルトイベント」 に表示されます。

表29.3 デフォルトイベント

プロセッサー カウンターのデフォルトイベント 説明
AMD Athlon および AMD64 CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
AMD Family 10h、AMD Family 11h、AMD Family 12h CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
AMD Family 14h、AMD Family 15h CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
IBM POWER4 サイクル プロセッサーサイクル
IBM POWER5 サイクル プロセッサーサイクル
IBM PowerPC 970 サイクル プロセッサーサイクル
Intel Core i7 CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
Intel Nehalem microarchitecture CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
Intel Pentium 4(ハイパースレッドおよび非スレッド) GLOBAL_POWER_EVENTS プロセッサーが停止していない時間
Intel Westmere microarchitecture CPU_CLK_UNHALTED プロセッサーのクロックが停止されていない
TIMER_INT (なし) 各タイマー割り込みの例
一度に監視できるイベントの数は、プロセッサーのカウンター数によって決定されます。ただし、1 対 1 の相関ではありません。一部のプロセッサーでは、特定のイベントを特定のカウンターにマップする必要があります。利用可能なカウンターの数を確認するには、以下のコマンドを実行します。
~]# ls -d /dev/oprofile/[0-9]*
利用可能なイベントはプロセッサーのタイプによって異なります。プロファイリングに使用できるイベントを確認するには、root で以下のコマンドを実行します(一覧はシステムのプロセッサータイプに固有のものです)。
~]# ophelp
OProfile が設定されていることを確認してください。
OProfile が適切に設定されていない限り、ophelp は以下のエラーメッセージを出して失敗します。
Unable to open cpu_type file for reading
Make sure you have done opcontrol --init
cpu_type 'unset' is not valid
you should upgrade oprofile or force the use of timer mode
OProfile を設定するには、「OProfile の設定」 の手順に従います。
各カウンターのイベントは、コマンドラインまたはグラフィカルインターフェースで設定できます。グラフィカルインターフェースの詳細は、「グラフィカルインターフェース」 を参照してください。カウンターを特定のイベントに設定しない場合は、エラーメッセージが表示されます。
コマンドラインで設定可能な各カウンターのイベントを設定するには、opcontrol を使用します。
~]# opcontrol --event=event-name:sample-rate
event-nameophelp のイベントの正確な名前に置き換え、sample-rate をサンプル間のイベント数に置き換えます。

29.2.2.1. サンプリングレート

デフォルトでは、時間ベースのイベントセットが選択されます。プロセッサーごとに 100,000 クロックサイクルごとにサンプルを作成します。タイマー割り込みを使用する場合は、タイマーは jiffy レートがどれでも設定され、ユーザー設定のテーブルではありません。cpu_typetimer でない場合、各イベントには サンプリングレート を設定できます。サンプリングレートは、各サンプルスナップショット間のイベント数です。
カウンターのイベントを設定する場合、サンプルレートを指定することもできます。
~]# opcontrol --event=event-name:sample-rate
sample-rate を、再度サンプリングするまで待機するイベントの数に置き換えます。数値が小さいほど、サンプルが頻繁に使用されます。頻繁に発生しないイベントの場合、イベントインスタンスをキャプチャーするためにカウントが低くなることがあります。
サンプリングが頻繁になりすぎると、システムにオーバーロードする可能性がある
サンプリングレートを設定する場合は十分に注意してください。サンプリングが頻繁にシステムをオーバーロードする可能性があります。これにより、システムがフリーズするか、システムが実際にフリーズするかのようにシステムが表示されます。