PerfInsights の使用方法

注:

この記事で参照されている CentOS は Linux ディストリビューションであり、End Of Life (EOL) に到達します。 使用を検討し、それに応じて計画します。 詳細については、「 CentOS End Of Life ガイダンス」を参照してください。

PerfInsights Linux は、診断データを収集して分析するセルフヘルプ 診断 ツールであり、Azure での Linux 仮想マシンのパフォーマンスの問題のトラブルシューティングに役立つレポートを提供します。 PerfInsights は、スタンドアロン ツールとしてサポートされている仮想マシンで実行することも、 Azure 仮想マシンのパフォーマンス診断を使用してポータルから直接実行することもできます。

仮想マシンでパフォーマンスの問題が発生している場合は、サポートに連絡する前にこのツールを実行してください。

サポートされているトラブルシューティングのシナリオ

PerfInsights は、いくつかの種類の情報を収集して分析できます。 以降のセクションでは、一般的なシナリオについて説明します。

パフォーマンスのクイック分析

このシナリオでは、仮想マシンのストレージとハードウェアの構成、次のようなさまざまなログなどの基本的な情報を収集します。

  • オペレーティング システム情報

  • PCI デバイス情報

  • 一般的なゲスト OS ログ

  • 構成ファイル

  • ストレージ情報

  • Azure 仮想マシンの構成 (Azure Instance Metadata Service を使用して収集)

  • 実行中のプロセス、ディスク、メモリ、CPU 使用率の一覧

  • ネットワーク情報

これは、システムに影響しない情報のパッシブ コレクションです。

注:

クイック パフォーマンス分析シナリオは、次の各シナリオに自動的に含まれます。

パフォーマンス分析

このシナリオはクイック パフォーマンス分析に似ていますが、診断情報を長期間キャプチャできます。

HPC パフォーマンス分析

このシナリオは、H シリーズと N シリーズを意味する HPC サイズ VM の問題のトラブルシューティングを目的としています。 これは、Azure HPC Platform チームがテストした内容に対して VM 構成をチェックし、推奨します。 また、これらの VM で使用できる特殊なハードウェアの状態と構成に関連するログと診断も収集されます。これには、次のものが含まれます。

  • GPU ドライバー情報

  • GPU ハードウェア 診断

  • InfiniBand ドライバーの情報と構成

  • InfiniBand デバイス 診断

  • ネットワーク構成ファイル

  • パフォーマンス チューニング情報

注:

デバイス ドライバーと共にパッケージ化された cli コマンドなど、HPC パフォーマンス分析シナリオで使用される一部のツールは、すべての VM に存在しません。 このような場合、分析のこれらの部分はスキップされます。 このシナリオを実行しても、VM にソフトウェアをインストールしたり、その他の永続的な変更を行ったりすることはありません。

注:

現時点では、Azure Portal から HPC シナリオを直接実行することはサポートされていないため、PerfInsights をダウンロードしてコマンド ラインから実行して使用する必要があります。

PerfInsights によって収集される情報の種類

Linux 仮想マシン、オペレーティング システム、ブロック デバイス、高リソース コンシューマー、構成、およびさまざまなログに関する情報が収集されます。 詳細を次に示します。

  • オペレーティング システム

    • Linux ディストリビューションとバージョン
    • カーネル情報
    • ドライバー情報
    • Azure HPC Driver VM 拡張機能ログ*
    • SELinux の構成*
  • ハードウェア

    • PCI デバイス [*]
    • lscpu の出力*
    • システム管理 BIOS テーブル ダンプ*
  • プロセスとメモリ

    • プロセスの一覧 (タスク名、使用メモリ、開かれたファイル)
    • 物理メモリの合計、使用可能、空き容量
    • 合計スワップ メモリ、使用可能メモリ、空きスワップ メモリ
    • CPU のキャプチャをプロファイリングし、5 秒間隔で CPU 使用率を処理する
    • 5 秒間隔でのプロセス メモリ使用量のプロファイリング キャプチャ
    • メモリ アクセスのユーザー制限*
    • NUMA の構成*
  • Gpu

    • Nvidia SMI 出力*
    • Nvidia DCGM 診断*
    • Nvidia デバッグ ダンプ*
  • ネットワーク

    • アダプターの統計情報を含むネットワーク アダプターの一覧
    • ネットワーク ルーティング テーブル
    • 開いているポートと状態
    • InfiniBand パーティション キー*
    • ibstat の出力*
  • ストレージ

    • デバイスの一覧をブロックする
    • パーティションの一覧
    • マウント ポイントの一覧
    • MDADM ボリューム情報
    • LVM ボリューム情報
    • 5 秒間隔ですべてのディスクのプロファイル キャプチャ
  • ログ

    • /var/log/messages
    • /var/log/syslog
    • /var/log/kern.log
    • /var/log/cron.log
    • /var/log/boot.log
    • /var/log/yum.log
    • /var/log/dpkg.log
    • /var/log/sysstat または /var/log/sa [**]
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log
    • /var/log/gpu-manager.log
    • /var/log/waagent.log
    • /var/log/azure/[extension folder]/*log*
    • /var/opt/microsoft/omsconfig/omsconfig.log
    • /var/opt/microsoft/omsagent/log/omsagent.log
    • /etc/waagent.config
    • 過去 5 日間の journalctl の出力
  • Azure 仮想マシン インスタンスのメタデータ

* HPC シナリオでのみ

パフォーマンス 診断 トレース

バックグラウンドでルール ベースのエンジンを実行してデータを収集し、継続的なパフォーマンスの問題を診断します。 ルールは、レポートの [カテゴリ -> 検索] タブに表示されます。

各ルールは次の要素で構成されます。

  • 検索結果: 検索結果の説明。
  • 推奨事項: 検索結果に対してどのような操作を行うことができるかについての推奨事項。 検索結果や推奨事項に関する詳細情報を提供するドキュメントへの参照リンクもあります。
  • 影響レベル: パフォーマンスに影響を与える可能性を表します。

現在、次のカテゴリのルールがサポートされています。

  • 高いリソース使用量:

    • 高い CPU 使用量: CPU 使用量が高い期間を検出し、それらの期間中に CPU 使用量が最も高いコンシューマーを表示します。
    • 高いメモリ使用量: メモリ使用量が高い期間を検出し、それらの期間中にメモリ使用量が最も高いコンシューマーを表示します。
    • 高いディスク使用量: 物理ディスク上のディスク使用量が高い期間を検出し、それらの期間中にディスク使用量が最も高いコンシューマーを表示します。
  • ストレージ: 特定のストレージ構成を検出します。

  • メモリ: 特定のメモリ構成を検出します。

  • GPU: 特定の GPU 構成を検出します。

  • ネットワーク: 特定のネットワーク設定を検出します。

  • システム: 特定のシステム設定を検出します。

注:

[*] PCI 情報はまだ Debian および SLES ディストリビューションで収集されていません。

[**] /var/log/sysstat または /var/log/sa には、sysstat パッケージによって収集されるシステム アクティビティ レポート (SAR) ファイルが含まれています。 sysstat パッケージが VM にインストールされていない場合は、PerfInsights ツールでインストールすることをお勧めします。

VM で PerfInsights Linux を実行する

ツールを実行する前に知っておくべきこと

ツールの要件

  • このツールを、パフォーマンスに問題がある VM で実行する必要があります。

  • Python 3.6 以降のバージョンを VM にインストールする必要があります。

    注:

    Python 2 は、Python Software Foundation (PSF) でサポートされなくなりました。 Python 2.7 が VM にインストールされている場合は、PerfInsights をインストールできます。 ただし、Python 2.7 をサポートするための変更やバグ修正は PerfInsights では行われません。 詳細については、「 Python 2 のサンセット処理」を参照してください。

  • 現在、次のディストリビューションがサポートされています。

    注:

    Microsoft では、テーブルに一覧表示されているバージョンのみをテストしています。 バージョンがテーブルに一覧表示されていない場合は、Microsoft によって明示的にテストされませんが、バージョンは引き続き機能する可能性があります。

    配布 バージョン
    Oracle Linux Server 6.10 [*]、7.3、7.5、7.6、7.7、7.8、7.9
    CentOS 6.5 [*]、7.6、7.7、7.8、7.9
    RHEL 7.2、7.5、8.0 [*]、8.1、8.2、8.6、8.8
    Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04
    Debian 8、9、10、11 [*]
    SLES 12 SP4 [*]、12 SP5 [*]、15 [*]、15 SP1 [*]、15 SP2 [*]、15 SP4 [*]
    AlmaLinux 8.4、8.5
    Azure Linux 2.0

注:

[*] 既知の問題 に関するセクションを参照してください

注:

[*] HPC シナリオは HPCDiag ツールに依存しているため、サポートされている VM サイズと OS のサポート マトリックスをチェックします。 特に、NDv4 サイズの VM はまだサポートされておらず、それらの VM のレポートには余分な結果が表示される場合があります。

既知の問題

  • RHEL 8 には、既定で Python がインストールされていません。 PerfInsights Linux を実行するには、まず Python 3.6 以降のバージョンをインストールする必要があります。

  • CentOS 6.x では、ゲスト エージェントの情報収集が失敗する可能性があります。

  • PCI デバイス情報は、Debian ベースのディストリビューションでは収集されません。

  • LVM 情報は、一部のディストリビューションで部分的に収集されます。

PerfInsights を実行操作方法

仮想マシンで PerfInsights を実行するには、Azure portalから Azure Performance Diagnostics をインストールします。 また、スタンドアロン ツールとしても実行できます。

注:

PerfInsights は、データを収集して分析するだけです。 システムに変更を加えることはありません。

Azure Portal から PerfInsights をインストールして実行する

このオプションの詳細については、「 Azure パフォーマンス診断」を参照してください。

スタンドアロン モードで PerfInsights を実行する

PerfInsights ツールを実行するには、次の手順に従います。

  1. PerfInsights.tar.gzを仮想マシン上のフォルダーにダウンロードし、ターミナルから次のコマンドを使用して内容を抽出します。

    wget https://download.microsoft.com/download/9/F/8/9F80419C-D60D-45F1-8A98-718855F25722/PerfInsights.tar.gz
    
    tar xzvf PerfInsights.tar.gz
    
  2. ファイルが含まれている perfinsights.py フォルダーに移動し、 を実行 perfinsights.py して、使用可能なコマンドライン パラメーターを表示します。

    cd <the path of PerfInsights folder>
    sudo python perfinsights.py
    

    PerfInsights Linux コマンド ライン出力のスクリーンショット。

    PerfInsights シナリオを実行する基本構文は次のとおりです。

    sudo python perfinsights.py -r <ScenarioName> -d [duration]<H | M | S> [AdditionalOptions]
    

    次の例を使用して、クイック パフォーマンス分析シナリオを 1 分間実行し、/tmp/output フォルダーの下に結果を作成できます。

    sudo python perfinsights.py -r quick -d 1M -a -o /tmp/output
    

    次の例を使用して、パフォーマンス分析シナリオを 5 分間実行し、結果 (TAR ファイルに格納) をストレージ アカウントにアップロードできます。

    sudo python perfinsights.py -r vmslow -d 300S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    次の例を使用して、HPC パフォーマンス分析シナリオを 1 分間実行し、結果の TAR ファイルをストレージ アカウントにアップロードできます。

    sudo python perfinsights.py -r hpc -d 60S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    注:

    シナリオを実行する前に、PerfInsights から、診断情報を共有し、使用許諾契約書に同意するよう求めるプロンプトが表示されます。 これらのプロンプトをスキップするには、-a または --accept-disclaimer-and-share-診断 オプションを使用します。

    Microsoft でアクティブなサポート チケットがあり、作業中のサポート エンジニアの要求に従って PerfInsights を実行している場合は、 -s または --support-request オプションを使用してサポート チケット番号を指定してください。

実行が完了すると、出力フォルダーが指定されていない限り、PerfInsights と同じフォルダーに新しい tar ファイルが表示されます。 ファイルの名前が PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz。 このファイルを分析のためにサポート エージェントに送信するか、ファイル内のレポートを開いて結果と推奨事項を確認できます。

診断レポートを確認する

PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz ファイル内には、PerfInsights の結果を詳細に示す HTML レポートがあります。 レポートを確認するには、 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz ファイルを展開し、 PerfInsights Report.html ファイルを開きます。

[概要] タブ

[ 概要 ] タブには、基本的な実行の詳細と仮想マシンの情報が表示されます。 [ 結果 ] タブには、PerfInsights レポートのすべての異なるセクションからの推奨事項の概要が表示されます。

PerfInsights レポートの [概要] タブのスクリーンショット。

PerfInsights レポートの [結果] タブのスクリーンショット。

注:

[高] と分類された結果は、パフォーマンスの問題の原因となる可能性のある既知の問題です。 [中] と分類された結果は、最適ではないが、必ずしもパフォーマンス問題の原因とはならない構成です。 [低] と分類された結果は、単なる情報提供のためのステートメントです。

[高] の結果と [中] の結果に対する推奨事項とリンクを確認します。 それらがパフォーマンスに影響を与える可能性について、またパフォーマンスが最適化された構成のベスト プラクティスについても学習してください。

[CPU] タブ

[CPU] タブには、PerfInsights の実行中のシステム全体の CPU 消費量に関する情報が表示されます。 CPU 使用率の高い期間と実行時間の長い CPU コンシューマーに関する情報は、CPU 関連の高い問題のトラブルシューティングに役立ちます。

PerfInsights レポートの [CPU] タブのスクリーンショット。

[GPU] タブ

[GPU ] タブには、GPU 関連の問題のトラブルシューティングに役立つ結果に関する情報が表示されます。

[PerfInsights レポート GPU] タブのスクリーンショット。

[ネットワーク] タブ

[ネットワーク ] タブには、ネットワークの構成と状態に関する情報が表示されます。 HPC シナリオの InfiniBand の問題など、ネットワーク関連の結果に関する情報については、こちらを参照してください。

[ネットワーク] タブのスクリーンショット。

[ストレージ] タブ

[Findings]\(評価結果\) セクションには、ストレージに関連する分析結果と推奨事項が表示されます。

[デバイスのブロック] および [パーティション]、[LVM]、[MDADM] タブなど、関連するその他のセクションでは、ブロック デバイスの構成方法と相互関係について説明します。

[ストレージ] タブのスクリーンショット。

[MDADM] タブのスクリーンショット。

[Linux] タブ

[ Linux ] タブには、VM で実行されているハードウェアとオペレーティング システムに関する情報が含まれています。 詳細には、実行中のプロセスの一覧と、ゲスト エージェント、PCI、CPU、GPU、ドライバー、LIS ドライバーに関する情報が含まれます。

[Linux] タブと詳細のスクリーンショット。

または、GPU 対応 VM で次の操作を行います。

[Linux] タブの [GPU] タブと詳細のスクリーンショット。

次のステップ

さらに詳しく調べるために、診断ログとレポートを Microsoft サポートにアップロードできます。 Microsoft サポートスタッフと連携するときに、トラブルシューティング プロセスを支援するために PerfInsights によって生成された出力の送信を要求する場合があります。

次のスクリーンショットは、受信する可能性があるものと同様のメッセージを示しています。

Microsoft サポートからのサンプル メッセージのスクリーンショット。

メッセージ内の指示に従って、ファイル転送ワークスペースにアクセスします。 セキュリティを強化するために、最初の使用時にパスワードを変更する必要があります。

サインインすると、PerfInsights によって収集された PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz ファイルをアップロードするためのダイアログ ボックスが表示されます。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。