システム・アナライザーによるリアルタイム・モニタリング

同カテゴリーの次の記事

DPDK アプリケーションの PCIe*トラフィック

この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「Real-Time Monitoring with System Analyzer」の日本語参考訳です。


このレシピは、システム・アナライザーの概要を紹介し、ターゲットシステムをリアルタイムにモニタリングして、CPU、GPU、メモリー、ディスク、ネットワークによる制限を特定します。

システム・アナライザーは、継続的なリアルタイム・モニタリングに加えて、基本パフォーマンスとリソースの使用状況に関するデータのレポートを可能にします。これは、インテル® VTune™ Amplifier 2019 Update 2 で追加されたプレビュー機能です。ユーザーからのフィードバックに応じて、将来のアップデートやリリースで利便性やユーザー体験が改善されたり、あるいは削除される可能性があります。

データが収集される「ターゲットシステム」には、Linux* または Windows* システムを利用できます。選択したデータを GUI で表示する「ホストシステム」には、Linux*、macOS*、または Windows* システムを利用できます。システム・アナライザーは、ほぼリアルタイムでターゲットシステムをモニタリングし、その高度な結果に基づいて、詳細なプロファイル向けに適切なインテル® VTune™ Amplifier の解析を設定できます。

システム・アナライザーは、ターゲット・データ・コレクターと、パフォーマンス・メトリックのタイムライン・グラフを表示するグラフィカル・ユーザー・インターフェイス (GUI) で構成されています。次のパフォーマンス・メトリックと表示オプションを利用できます。

  • CPU 使用率と周波数
  • メモリー使用率 (Linux* のみ)
  • ネットワーク・スループット (Linux* のみ)
  • GPU 使用率とその他のグラフィックス・メトリック (インテル® グラフィックス・ドライバーがインストールされている場合)

システム・アナライザーは、インテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) パッケージにも含まれます。グラフィックス・レンダリングのワークロードとボトルネックを解析するには、システム・アナライザーとインテル® GAP パッケージに含まれるほかのツールを使用します。

使用するもの

以下は、パフォーマンス解析シナリオで使用するソフトウェアのリストです。

  • ツール: インテル® VTune™ Amplifier 2019 Update 2 (システム・アナライザー・パッケージを含む)

    ホスト上のシステム・アナライザー・パッケージのインストール・フォルダーは、インテル® VTune™ Amplifier のバージョンにより異なります。

    • スタンドアロン・バージョンの Linux* ホスト – Linux*/Android* ターゲットの場合: /opt/intel/vtune_amplifier_2019/system_analyzer
    • スタンドアロン・バージョンの Windows* ホスト – Linux*/Android* ターゲットの場合: C:\[Program Files]\IntelSWTools\VTune Amplifier 2019\system_analyzer
    • インテル® System Studio バージョンの Linux* ホスト – Linux*/Android* ターゲットの場合: /opt/intel/system_studio_2019/vtune_amplifier_2019/system_analyzer
    • インテル® System Studio バージョンの Windows* ホスト – Linux*/Android* ターゲットの場合: C:\[Program Files]\IntelSWTools\system_studio_2019\vtune_amplifier_2019\system_analyzer

    プロファイルされるターゲットシステムが以前にインテル® VTune™ Amplifier によってプロファイルされたことがある場合、インテル® VTune™ Amplifier ファイルはホストから設定されたディレクトリーにあります。例えば、/opt/intel/vtune_amplifier_version (root ユーザーのデフォルト) または /tmp/vtune_amplifier_version (非 root ユーザーのデフォルト)。ターゲット・システム・アナライザー・ファイルは、system_analyzer/target/ サブディレクトリーにあります。

    • すべてのケースで、ターゲット・システム・コレクター・ファイルは target サブディレクトリーにあり、ホスト GUI は host サブディレクトリーにあります。
    • インテル® VTune™ Amplifier 評価版のダウンロードと製品サポートについては、https://www.isus.jp/intel-vtune-amplifier-xe/ を参照してください。

システム・アナライザーを起動する

必要条件: ターゲットシステムがホストシステムと異なる場合、ターゲット・データ・コレクター・ファイルをターゲットシステムにコピーします。

  1. ターゲットシステムでシステム・アナライザー・コレクターをセットアップします。
    • Windows* ターゲットシステムでは、システム・アナライザー・コレクター・ディレクトリーに移動して gpa_router を起動します。オプションで、ホストの IPv4 アドレスを指定して、システム・アナライザー GUI を実行し、このインスタンスへの接続を許可することができます。
      target> gpa_router.exe --ip-whitelist 10.7.158.142
      
    • Linux* ターゲットシステムでは、システム・アナライザーのターゲット・コレクター・ディレクトリーに移動して gpa_router を起動します。オプションで、ホストの IPv4 アドレスを指定して、システム・アナライザー GUI を実行し、このインスタンスへの接続を許可することができます。
      target> ./gpa_router --ip-whitelist 10.0.0.2
      

      システム・アナライザー GUI がターゲットシステムに接続すると、gpa_router は着信接続をレポートします。次に例を示します。

      target> ./gpa_router --ip-whitelist 10.0.0.2 
      Start listening for new connections from port #27072 
      New incoming connection established with 10.0.0.2.
      

    使用する TCP ポートを指定するための構文を含む、gpa_router コマンドライン・オプションの詳細を確認するには、gpa_router –help と入力します。

  2. システム・アナライザーを起動します。

    例えば、Windows* ホストシステムでは、次のコマンドを実行します。

    host> SystemAnalyzer.exe
    

    ターゲットシステムで実行中の gpa_router が「Incoming connection from host <IPv4> was rejected since address is not in ip-whitelist. (ホスト <IPv4> からの着信接続は、ip-whitelist にないため拒否されました。)」エラーを報告した場合、–ip-whitelist オプションでホストシステムの IPv4 アドレスを指定して gpa_router を再起動します。

  3. localhost を指定するか、ターゲットシステムの名前または IPv4 アドレスを指定して、[Connect] ボタンをクリックします。

[System View] を設定する

  1. システム・アナライザーがターゲットシステムに接続したら、[System Profiling] の下にある [System View] オプションを選択します。

  2. [System View] では、マウスでグラフの表示領域へメトリックをドラッグアンドドロップして、モニタリングするメトリックを指定します。カウンターを追加する場合は、Ctrl キーを押しながらグラフの表示領域へカウンターをドラッグします。タイムラインを追加する場合は、メトリックを下部のタイムライン・グラフへドラッグします。

    例えば、次に示すような CPU 使用率と周波数、ネットワーク I/O、ディスク I/O のタイムライン・グラフを設定します。

グラフに表示するため現在選択されているデータをカンマ区切りのファイルへエクスポートするには、システム・アナライザー GUI ウィンドウの上部にある [CSV] アイコンをクリックします。システム・アナライザー GUI は、エクスポート先のディレクトリーと *.csv ファイルの名前をタイトルバーに表示します。

詳細な解析向けに異常を特定する

システム・アナライザーが準ランダムで周期的な異常を示す場合 (例えば、ターゲットシステムのネットワーク負荷がときどき突然ゼロに近くなることがある場合)、インテル® VTune™ Amplifier の入力と出力解析やマイクロアーキテクチャー全般解析で詳しく調査し、原因を特定する必要があります。

この例では、グラフのいくつかの個所で、ディスクへの書き込みとネットワーク・トラフィックが同時にやや低下しています。そして、ある個所ではディスクへの書き込みが通常の倍以上に急増し、同時にネットワーク・トラフィックがゼロに近くなっています。

この場合、ディスクへの書き込みが急増する直前にインテル® VTune™ Amplifier の詳細なデータ収集を開始し、数秒後に停止すべきです。しかしこのケースでは、ディスクへの書き込みが急増するタイミングを正確に事前予測することは困難です。そこで、リングバッファーを使用して、ディスクへの書き込みが急増しネットワーク・トラフィックが低下した周辺データの最後の数秒間のみを保存するようにデータ収集を設定すべきです。

異常を検出するようにインテル® VTune™ Amplifier を設定する

最後の 1 ~ 20 秒間のみが保存されディスクへ書き込まれるリングバッファーを使用して、システムの詳細なプロファイルを行うようにインテル® VTune™ Amplifier を設定できます。

インテル® VTune™ Amplifier GUI では、[WHAT (何を)] ペインの [Attach to Process (プロセスにアタッチ)]、[Profile System (システムをプロファイル)]、または [Launch Application (アプリケーションを起動)] で、[Limit collected data by: (収集データを制限)] にある [Time from collection end (収集終了からの時間)] オプションを使用してリングバッファーを設定できます。

コマンドラインからリングバッファーを設定し解析を実行するには、–ring-buffer オプションを使用します。

システム・アナライザーとインテル® VTune™ Amplifier を実行する

インテル® VTune™ Amplifier とシステム・アナライザーを同時に実行して、インテル® VTune™ Amplifier の解析により詳細なパフォーマンス・メトリックを取得し、システム・アナライザーによりメトリックの表示をモニタリングしてインテル® VTune™ Amplifier のデータ収集を停止するタイミングを特定します。これにより、想定外の動作が発生する直前、最中、直後のシステムを解析できるだけでなく、収集期間の短縮によりディスクへの書き込みとストレージ要件が軽減され、収集のオーバーヘッドを最小化できます。

このレシピでシステム・アナライザーによって検出されたディスク I/O 問題の場合、入力と出力解析を [System Disk IO API (システムディスク I/O API)] モード (デフォルト) で実行します。

コマンドラインからインテル® VTune™ Amplifier の収集を実行するには、次のコマンドを入力します。

amplxe-cl -collect io -knob collect-memory-bandwidth=true -ring-buffer=20 --duration unlimited

収集したデータを入力と出力ビューポイントで確認します。フィルターを使用したり、タイムラインのディスクへの書き込みが急増しネットワーク・トラフィックが低下している部分へズームインすることで、調査対象を絞り込むことができます。例えば、[Bottom-up (ボトムアップ)] ウィンドウでは、次のように表示されます。

[Platform (プラットフォーム)] ウィンドウでは、次のように表示されます。

関連項目

入力と出力解析 (英語)
インテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) for Windows* ホスト (英語)
インテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) for Ubuntu* ホスト (英語)

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • OpenMP* コード解析OpenMP* コード解析 この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「OpenMP* Code Analysis Method」の日本語参考訳です。 このレシピは、OpenMP* または OpenMP* - MPI ハイブリッド・アプリケーションの […]
  • MPI アプリケーションのプロファイルMPI アプリケーションのプロファイル この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「Profiling MPI Applications」の日本語参考訳です。 このレシピは、インテル® VTune™ Amplifier を使用して MPI […]
  • ハードウェアベースのホットスポット解析向けに Hyper-V* 仮想マシンを設定するハードウェアベースのホットスポット解析向けに Hyper-V* 仮想マシンを設定する この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「Configuring a Hyper-V* Virtual Machine for Hardware-Based Hotspots […]
  • DPDK アプリケーションの PCIe*トラフィックDPDK アプリケーションの PCIe*トラフィック この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「PCIe Traffic in DPDK Apps」の日本語参考訳です。 インテル® VTune™ Amplifier の PCIe* […]
  • Amazon Web Services* (AWS*) EC2* インスタンス上のアプリケーションのプロファイルAmazon Web Services* (AWS*) EC2* インスタンス上のアプリケーションのプロファイル この記事は、インテル® デベロッパー・ゾーンに公開されている「インテル® VTune™ Amplifier パフォーマンス解析クックブック」の「Profiling Applications in Amazon Web Services* (AWS) EC2 Instances」の日本語参考訳です。 このレシピは、インテル® […]