Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
23.2.2. 監視するイベントのセッティング
ほとんどのプロセッサには カウンター が装備されており、OProfile はこれを使用して特定のイベントを監視します。表23.2「OProfile プロセッサ及びカウンター」 で示してあるように、利用可能なカウンターの数はプロセッサにより異なります。
表23.2 OProfile プロセッサ及びカウンター
プロセッサ | 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 | タイマー | 1 |
IBM POWER4 | ppc64/power4 | 8 |
IBM POWER5 | ppc64/power5 | 6 |
IBM PowerPC 970 | ppc64/970 | 8 |
IBM S/390 及び IBM System z | タイマー | 1 |
Intel Core i7 | i386/core_i7 | 4 |
Intel Nehalem マイクロアーキテクチャ | i386/nehalem | 4 |
Intel Pentium 4 (ハイパースレッドなし) | i386/p4 | 8 |
Intel Pentium 4 (ハイパースレッドあり) | i386/p4-ht | 4 |
Intel Westmere マイクロアーキテクチャ | i386/westmere | 4 |
TIMER_INT | タイマー | 1 |
表23.2「OProfile プロセッサ及びカウンター」 を使用すると、正しいプロセッサタイプが検出されたことを立証し、更に同時に監視できるイベントの数を決定できます。サポートされているパフォーマンス監視ハードウェアをプロセッサが装備していない場合、
timer
が、プロセッサタイプとして使用されます。
timer
が使用される場合、ハードウェアはハードウェアパフォーマンスカウンター用のサポートを持たないため、イベントをプロセッサ用に設定できません。その代わりに、タイマー割り込み (timer interrupt) がプロファイル用に使用されます。
timer
がプロセッサタイプとして使用されない場合は、監視されるイベントは変更できません。そしてプロセッサ用にカウンター0がデフォルトでタイムベースのイベントにセットされます。プロセッサ上に複数のカウンターが存在する場合、カウンター0以外のカウンターはデフォルトではイベントにセットされません。監視されるデフォルトのイベントは 表23.3「デフォルトのイベント」 に示してあります。
表23.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 マイクロアーキテクチャ | CPU_CLK_UNHALTED | プロセッサのクロックは停止していません |
Intel Pentium 4 (ハイパースレッド有りと無し) | GLOBAL_POWER_EVENTS | プロセッサが停止していない期間の長さ |
Intel Westmere マイクロアーキテクチャ | CPU_CLK_UNHALTED | プロセッサのクロックは停止していません |
TIMER_INT | (なし) | 各タイマー割り込みのサンプル |
一度に監視できるイベントの数はプロセッサのカウンターの数で決定されます。しかし、それは1対1の関係ではなく、一部のプロセッサでは一定のイベントは特定のカウンターにマップしなければなりません。利用可能なカウンターを判定するには、以下のコマンドを実行します:
~]# ls -d /dev/oprofile/[0-9]*
利用可能なイベントはプロセッサタイプによって変わります。プロファイリング用に利用可能なイベントを判定するには、root として以下のコマンドを実行します。(一覧はシステムのプロセッサタイプに特有のものです):
~]# ophelp
注記
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-name を
ophelp
からのイベントの実際の名前で入れ替え、sample-rate をサンプル間のイベントの数で入れ替えます。
23.2.2.1. サンプルのレート
デフォルトでは、タイムベースのイベントセットが選択されます。これはプロセッサ別に100,000 クロックサイクル毎にサンプルを1つ作成します。タイマー割り込みが使用される場合は、タイマーは jiffy レートにセットされて、ユーザー設定ではありません。
cpu_type
が timer
でない場合、各イベントは サンプルのレート をそれ自身にセットすることができます。サンプルレートとは、各サンプルのスナップショットの間隔内に於けるイベントの数です。
カウンター用にイベントをセットする際には、サンプルレートも指定できます:
~]# opcontrol --event=event-name:sample-rate
sample-rate を再度サンプルを取るまでのイベントの数で入れ替えます。カウントが少ないとサンプル取りの回数が増えます。頻繁に発生しないイベントには、イベントのインスタンスをキャプチャするために低いカウントが必要になるでしょう。
警告
サンプルレートをセットする際には細心の注意が必要です。サンプルの頻度が高すぎると、システム負荷が大きくなり過ぎてシステムがフリーズしたかのように見えるか、または実際にフリーズする原因になります。