インテル® VTune™ プロファイラー・ユーザーガイド

コンテナー内でインテル® VTune™ プロファイラーを実行

インテル® VTune™ プロファイラーと Docker* イメージをインストールして、同一コンテナーとコンテナー外で実行されるネイティブまたは Java* アプリケーションをプロファイルします。

必要条件

コンテナー内でインテル® VTune™ プロファイラーをインストールして実行

プリインストールされたインテル® oneAPI ベース・ツールキットで Docker* イメージを使用する場合、これらを行う必要はありません。

  1. Docker* コンテナーに、インテル® VTune™ プロファイラーのコマンドライン・インターフェイスをインストールします。

    [2] カスタムインストール > [3] インストールするコンポーネントを変更を選択して、コンテナー環境に必要がないコンポーネントのインストールを解除します: [3] グラフィカル・ユーザー・インターフェイス[4] プラットフォーム・プロファイラー

  2. インストール後、インテル® VTune™ プロファイラーの環境変数を設定します。例えば、インテル® oneAPI ベース・ツールキットのインテル® VTune™ プロファイラーでは、次を行います。

    container> source /opt/intel/inteloneapi/vtune/version/env/vars.sh

コンテナーターゲットの解析を実行

次に示すサポートされるターゲットおよび解析タイプを使用して、コンテナーで実行されるターゲット解析を設定します。

ターゲットタイプ

解析タイプ

  • アプリケーションを起動
  • プロセスにアタッチ
  • システムをプロファイル (Java* ターゲットはサポートされません)

  • ユーザーモード・サンプリングのホットスポット
  • ハードウェア・イベントベース・サンプリングのホットスポット
  • マイクロアーキテクチャー全般

解析を実行するには次のコマンドを実行します。

vtune -collect <analysis_type> [options] -- [container_target]

次に例を示します。

container> vtune -collect hotspots -knob sampling-mode=hw -- /home/samples/matrix

ホストターゲットの解析を実行

次に示すターゲットおよび解析タイプを使用して、ホストで実行されるターゲット解析を設定します。

ターゲットタイプ

解析タイプ

  • プロセスにアタッチ
  • システムをプロファイル (Java* ターゲットはサポートされません)

  • ユーザーモード・サンプリングのホットスポット
  • ハードウェア・イベントベース・サンプリングのホットスポット
  • マイクロアーキテクチャー全般

解析を実行するには次のコマンドを実行します。

vtune -collect <analysis_type> [options] -- [host_target]

次に例を示します。

container> vtune -collect hotspots -target-process java

既知の問題:

  1. 問題: 関数レベルの解析はデフォルトでは利用できません。インテル® VTune™ プロファイラーは、サンプルをユーザー・アプリケーションのバイナリーにマッピングしますが、ホストのバイナリーをコンテナーから利用できないため、関数を解決できません。

    解決方法: バイナリーを含むマウントされたホストフォルダーで Docker* コンテナーを実行し、vtune コマンドの引数に search directory を指定します。

  2. 問題: インテル® VTune™ プロファイラーはコンテナーで root ユーザーで実行され、ホスト上のアプリケーションは非 root ユーザーで実行されます。そのため、ユーザーモード・サンプリングのホットスポット解析は失敗し、「ターゲットとインテル® VTune™ プロファイラーの両方を同じユーザーで実行する必要があります」というメッセージが出力されます。

    解決方法: 同じユーザーがコンテナーでインテル® VTune™ プロファイラーを実行し、コンテナー外でターゲット・アプリケーションを実行していることを確認してください。

関連情報