ハードウェア・イベントベース・サンプリング収集

サンプリング・モードでハードウェア・イベントベース・サンプリング (EBS) (パフォーマンス・モニタリング・カウンター (PMC) とも呼ばれる) の実行中、インテル® VTune™ プロファイラーはパフォーマンス・モニタリング・ユニット (PMU) のカウンター・オーバーフロー機能を使用して、アプリケーションをプロファイルします。

データコレクターはプロセスに割り込みをかけ、割り込まれたプロセスの IP を取得します。統計的に収集されたアクティブプロセスの IP から、ソフトウェアのパフォーマンスに影響する重要なコード領域を表示できます。

統計的なサンプリングでは 100% 正確なデータは得られません。インテル® VTune™ プロファイラーはイベントの収集時に、そのイベントだけではなく、そのサンプリング間隔全体 (10,000 から 2,000,000 イベント) をコード・コンテキストに関連付けます。サンプル数が多い場合、サンプリング・エラーがパフォーマンス解析の精度に重大な影響を与えることはなく、最終的な統計情報は有効なものです。しかし、短期間に何かが発生する場合、それを示すサンプルはわずかです。めったに見られないドライバーで 200 万命令が 0 サイクルでリタイアするなど、一見不可解な結果をもたらす可能性があります。この場合、サンプル数が少ないホットスポットを無視するか、より粗い粒度 (関数単位など) に切り替えます。

イベントベース・サンプリングの平均オーバーヘッドは、1 ミリのサンプリング間隔でおよそ 2% です。

同時に収集可能なハードウェア・イベント (PMC) の数は、CPU の能力によって異なります。通常 4 イベントを超えることはありません。この制限に対処するため、インテル® VTune™ プロファイラーはイベントリストをいくつかのイベントグループに分割します。各グループは、同時に収集できるイベントで構成されます。インテル® VTune™ プロファイラーは次のいずれかの技法を使用します。

Linux* へのインストールでは、ユーザーごとのフィルター処理を有効にしてサンプリング・ドライバーをインストールする方法もあります。フィルターが有効な場合、コレクターは収集を開始したユーザーによってスポーンされたプロセスのデータのみを収集します。無効 (デフォルト) の場合、システムのすべてのプロセスからサンプルが収集されます。セキュリティーの観点から、クラスター環境ではほかのユーザーから収集を分離するためフィルターを利用することを考えてください。管理者/root は、ドライバーをいつでも再ビルド/再起動することでフィルターモードを変更することができます。一般ユーザーは、製品のインストール後にモードを変更することはできません。

デフォルトでは、インテル® VTune™ プロファイラーのコレクターは、ターゲットをサンプリングしますが実行パスは解析しません。ただし、解析の設定で [コールスタック] オプションを有効にして、ハードウェア・パフォーマンス・イベントやタイムスタンプを正確に測定し、スレッドがアクティブ化またはインアクティブ化されるまでのコールスタックを収集できます。Linux* システムでは、デフォルトで、インテル® VTune™ プロファイラーはハードウェア・イベントベースのスタック解析にドライバーを使用しない Perf* 収集モードを使用します。

インテル® VTune™ プロファイラーは、ハードウェア・イベントベース・サンプリング・コレクターを使用して、次の解析タイプのデータを収集します。

これは、プレビュー機能です。プレビュー機能は、正式リリースに含まれるかどうかは未定です。有用性に関する皆さんからのフィードバックが、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換性が保証されません。

ハードウェア・イベントベース・サンプリング収集に基づくカスタム解析タイプを作成できます。

ハードウェア・イベントベース・サンプリング・コレクターを使用する解析タイプでは、システム上で一度に 1 つの収集しかできない制限があります。

必要条件:

ハードウェア・イベントベース・サンプリング収集タイプ用のサンプリング・ドライバーをインストールすることを推奨します。Linux* と Android* ターゲットでは、サンプリング・ドライバーがインストールされていない場合、インテル® VTune™ プロファイラーはドライバーを使用しない Pert* 収集を使用して動作します。Linux* ターゲットシステムでは、次の構成の設定に注意してください。

関連情報