この記事は、インテルのウェブサイトに公開されている「Intel® VTune™ Profiler Performance Analysis Cookbook」の「Profiling Applications in Performance Monitoring Unit (PMU)-Enabled Google Cloud* Virtual Machines」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
このレシピでは、Google Cloud Platform* で仮想マシン (VM) インスタンスを設定し、インテル® VTune™ プロファイラーを使用してアプリケーション・パフォーマンスをプロファイルする方法を紹介します。
コンテンツ・エキスパート: Jennifer Dimatteo (英語)
使用するもの
以下は、このパフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。
- アプリケーション: 任意のアプリケーションを使用できます。
- ツール: インテル® VTune™ プロファイラー 2024 以降のホットスポット解析
準備
インテル® VTune™ プロファイラーをマシンにインストールするシステム要件 (英語) を理解します。システムには、少なくとも 4GB RAM と 10GB の空きディスク容量が必要です。
さまざまな Google Cloud* 仮想マシン (VM) で使用できるインテル® VTune™ プロファイラーの機能 (英語) を確認します。
VM インスタンスが SSH (ポート 22) 経由の接続をサポートできることを確認します。
データを収集して結果を保持するため、ルートボリュームには少なくとも 10GB の空き容量が必要です。
VM インスタンスの作成と設定
VM を設定します。Google Cloud* ウェブサイトの手順に従ってください。
VM インスタンスのプロファイル設定
汎用 C4 タイプの VM では、デフォルトで PMU が有効になりません。Google GUI コンソールで PMU を有効にすることはできませんが、代わりにコマンドラインを使用できます。PMU を設定にするには、「VM で PMU を有効にする」 (英語) の手順に従ってください。
例えば、次の gcloud create コマンドは、拡張モードで PMU を有効にします。
gcloud compute instances create c4pmu --machine-type=c4-standard-96 --performance-monitoring-unit=enhanced --zone=us-central1-b --create-disk=auto-delete=yes,boot=yes,device-name=instance-20240912-163331,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20240830,mode=rw,provisioned-iops=3060,provisioned-throughput=155,size=50,type=hyperdisk-balanced
インテル® VTune™ プロファイラーの機能を最大限に活用するには、VM で利用可能な最高レベルの PMU アクセスを選択します。
プロファイル向けにターゲット VM を準備する
ユーザーモード・サンプリング収集の場合、/proc/sys/kernel/yama/ptrace_scope を 0 に設定します。
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
ハードウェア・イベントベース・サンプリング収集の場合、/proc/sys/kernel/perf_event_paranoid を 0 に設定します。
echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid
ドライバーを使用しないプロファイルについては、「インテルのサンプリング・ドライバーを使用しないハードウェアのプロファイル」を参照してください。
ホットスポット解析の実行
次のいずれかの方法でサンプル・プロジェクトを実行します。
SSH を使用して、ローカルにインストールされているインテル® VTune™ プロファイラーからリモート収集を実行します。
Google Cloud* VM から直接インテル® VTune™ プロファイラーを実行します。
Google Cloud* VM 上でインテル® VTune™ プロファイラーをウェブサービスとして実行します。
SSH を使用して、ローカルにインストールされているインテル® VTune™ プロファイラーからリモート収集を実行する
インテル® VTune™ プロファイラーでプロジェクトを作成します。
[Configure Analysis (解析の設定)] ウィンドウの [WHERE (どこを)] ペインで [Remote Linux (SSH) (リモート Linux* (SSH))] を選択します。
インスタンスのパブリック IPv4 DNS アドレスを特定します。
[SSH destination (SSH 接続先)] フィールドに <VM ユーザー>@<VM のパブリック IPv4> を入力します。
インテル® VTune™ プロファイラーは、データ収集に必要なバイナリーがインストールされていることを確認するため、リモートシステムへの接続を試みます。
パスワードを入力するコマンドウィンドウが開きます。インテル® VTune™ プロファイラーは、独自の SSH キーを作成して <ユーザー ホーム>/.ssh に保存します。その後、SSH キーは VM インスタンスの authorized_keys ファイルにコピーされます。
ターゲットシステムで製品が見つからないというメッセージが表示された場合は、[Deploy (デプロイ)] をクリックしてインストールします。
[WHAT (何を)] ペインでは、アプリケーションの場所と作業ディレクトリーを指定します。
[HOW (どのように)] ペインでは、[Hardware Event-Based Sampling (ハードウェア・イベントベース・サンプリング)] 収集を使用する [Hotspots (ホットスポット)] 解析を選択します。
をクリックして収集を開始します。
解析が完了すると、インテル® VTune™ プロファイラーは結果をローカルシステムにコピーします。
Google Cloud* VM から直接インテル® VTune™ プロファイラーを実行する:
インテル® VTune™ プロファイラーをインストールします。インストールの情報は、こちら (英語) を参照してください。
インテル® VTune™ プロファイラーを実行します。
sudo <vtune_install_dir>/vtune_profiler/bin64/vtune-gui
プロジェクトを作成します。
[Configure Analysis (解析の設定)] ウィンドウで以下の操作を行います。
[WHERE (どこを)] ペインでは、[Local Host (ローカルホスト)] ターゲット・システム・タイプを選択します。
[WHAT (何を)] ペインでは、アプリケーションの場所と作業ディレクトリーを指定します。
[HOW (どのように)] ペインでは、ホットスポット解析の優先収集モード (例: [Hardware Event-Based Sampling (ハードウェア・イベントベース・サンプリング)]) を選択します。
をクリックして収集を開始します。
解析結果が [Hotspots by CPU Utilization (CPU 利用率別ホットスポット)] ビューポイントに表示されます。
Google Cloud* VM 上でインテル® VTune™ プロファイラーをウェブサービスとして実行する:
VM ファイアウォールが 8080 ポートへの接続を許可するように構成されていることを確認します。ファイアウォールの詳細については、こちらを参照してください。
Google Cloud* VM 上にインテル® VTune™ プロファイラーをインストールします。インストールの情報は、こちら (英語) を参照してください。
インテル® VTune™ プロファイラーをウェブサービスとして実行します。
<vtune_install_dir>/latest/bin64/vtune-backend –-allow-remote-access –-enable-server-profiling –-web-port=8080
vtune-backend コマンドは、インスタンスのプライベート IP とワンタイムトークンを含む URL を返します。
プライベート IP をインスタンスのパブリック IP または DNS に置き換えます。
例えば、https://10.128.0.18:8080/?one-time-token=b8cafc89721e781161aba4ddcef5a718 を https://18.236.194.236:8080/?one-time-token=b8cafc89721e781161aba4ddcef5a718 にします。
URL をブラウザーにコピーします。
注:
ブラウザーによって、URL が安全でないことを示す警告が表示される場合があります。これは、ウェブサービスが正式に署名された証明書ではなく、自己署名証明書を使用しているためです。プロンプトでパスフレーズを作成し、インテル® VTune™ プロファイラーの GUI に進みます。
[Configure Analysis (解析の設定)] ウィンドウで以下の操作を行います。
[WHERE (どこを)] ペインでは、[Local Host (ローカルホスト)] ターゲット・システム・タイプを選択します。
[WHAT (何を)] ペインでは、アプリケーションの場所と作業ディレクトリーを指定します。
[HOW (どのように)] ペインでは、ホットスポット解析の優先収集モード (例: [Hardware Event-Based Sampling (ハードウェア・イベントベース・サンプリング)]) を選択します。
をクリックして収集を開始します。
解析結果が [Hotspots by CPU Utilization (CPU 利用率別ホットスポット)] ビューポイントに表示されます。