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

ホストからコンテナーターゲットをプロファイル

ホストでインテル® VTune™ プロファイラーを起動し、Linux* システム上の LXC*、Docker*、Mesos*、Singularity* コンテナーで実行されるネイティブまたは Java* アプリケーションをプロファイルします。

必要条件

インテル® VTune™ プロファイラーは、コンテナーで実行されるアプリケーションを自動検出します。パフォーマンス解析のためコンテナー固有の設定は必要ありません。ユーザーモードのサンプリング解析タイプ (ホットスポットやスレッド化) を実行するには、ptrace のサポートを有効にしてコンテナーを実行します。

host> docker run --cap-add=SYS_PTRACE -td myimage

または、特権モードでコンテナーを起動します。

host> docker run --privileged -td myimage

コンテナーをターゲットとした設定と実行

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

ターゲットタイプ

解析タイプ

  • プロセスにアタッチ
  • システムをプロファイル

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

  1. ホストシステム上でインテル® VTune™ プロファイラーのプロジェクトを作成します。

  2. [解析の設定] ウィンドウの [どこを] ペインで、[ローカルホスト] システムを選択して、ホストの Linux* システムから解析システムを開始、または [リモート Linux* (SSH)] を選択して、ホストシステムから SSH 経由でリモート接続された Linux* システムの解析を開始します。リモート Linux* ターゲットでは、SSH 接続の設定を確認してください。

  3. [何を] セクションで解析ターゲットを指定します。コンテナーターゲット解析では、次のターゲットタイプがサポートされます。[プロセスにアタッチ][システムをプロファイル]

    選択可能なオプションを使用して、通常通りプロセスまたはシステムターゲットを構成します。

    [システムをプロファイル] モードでは、インテル® VTune™ プロファイラーは同じコンテナー、または異なるコンテナーで同時に実行されるすべてのアプリケーションをプロファイルします。通常のマネージドコードのシステム全体のプロファイルの制限は、コンテナーで実行される Java* アプリケーションには適用されません。

    スーパーユーザー権限で実行するインテル® VTune™ プロファイラーを、低い権限レベルのユーザーアカウントで実行される Java* プロセスや JVM* インスタンスが組み込まれた C/C++ アプリケーションへアタッチすることができます。例えば、インテル® VTune™ プロファイラーを Java* ベースのデーモンやサービスにアタッチしてプロファイルできます。

    動的なアタッチのメカニズムは、Java* 開発キット (JDK) でのみサポートされます。

  4. [どのように] セクションで、解析タイプを選択し必要に応じて解析オプションをカスタマイズします。

    ホットスポット (ハードウェア・イベントベース・サンプリング・モード) と マイクロアーキテクチャー全般 解析では、Linux* Perf ツールベースのドライバーを使用しないデータ収集を使用して、コンテナーで実行されるターゲットのパフォーマンス・データを収集できます。

  5. 解析を実行するには、[開始] をクリックします。

また、インテル® VTune™ プロファイラーのコマンドライン・インターフェイス (vtune) を使用して、この解析を設定および実行することもできます。例えば、ローカルでシステム全体のホットスポット解析を行うには、次のコマンドを使用します。

host> vtune -collect hs -knob sampling-mode=hw -analyze-system -d 60

また、リモートマシン上でプロセスにアタッチモードでなホットスポット解析を実行するには、次のコマンドを使用します。

host> vtune -target-system=ssh:user1@172.16.254.1 -collect hs -knob sampling-mode=hw -target-process=java -d 60

データを表示

デフォルトのホットスポット・ビューポイントに収集された結果が開き、コンテナーモジュールへのパスにはプリフィクスが添付されます (例えば、dockerlxc)。

関連情報