パフォーマンス診断 (PerfInsights) に関する Linux 仮想マシンのパフォーマンスに関する問題のトラブルシューティング

適用対象: ✔️ Linux VM

Note

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

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

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

Note

継続的診断 (プレビュー) は現在、Windows でのみサポートされています。

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

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

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

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

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

Note

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

パフォーマンス分析

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

HPC パフォーマンス分析

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

  • GPU ドライバー情報

  • GPU ハードウェア診断

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

  • InfiniBand デバイスの診断

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

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

Note

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

Note

現時点では、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 の出力*
  • Storage

    • ブロック デバイスの一覧
    • パーティションの一覧
    • マウント ポイントの一覧
    • 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 or /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 構成を検出します。

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

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

Note

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

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

VM で PerfInsights Linux を実行する

ツールを実行する前の確認事項

ツールの要件

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

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

    Note

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

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

    Note

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

    Distribution バージョン
    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

Note

[*] 既知のイシューのセクションを参照してください

Note

[*] 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 をインストールすることによって仮想マシンで実行できます。 また、スタンドアロン ツールとしても実行できます。

Note

PerfInsights では、単純にデータが収集されて解析されます。 これによりシステムに変更は加えられません。

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

このオプションの詳細については、Azure Performance Diagnostics に関する記事を参照してください。

スタンドアロン モードで 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>
    

    Note

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

    有効な 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 ファイルを開きます。

[概要] タブ

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

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

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

Note

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

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

[CPU] タブ

[CPU] タブには、PerfInsights 実行中のシステム全体の CPU 使用量に関する情報が表示されます。 CPU 使用率が高い期間や、特に CPU を長く実行しているコンシューマーに関する情報は、高い CPU 使用率に関するイシューのトラブルシューティングに役立ちます。

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

[GPU] タブ

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

[PerfInsights Report 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 フィードバック コミュニティに製品フィードバックを送信することもできます。