Azure で PerfInsights を使用する方法

PerfInsights は、診断データを収集および解析するセルフヘルプ診断ツールで、Azure での Windows 仮想マシンのパフォーマンス問題をトラブルシューティングする際に役立ちます。 PerfInsights は、仮想マシンでスタンドアロン ツールとして実行できます。または Azure 仮想マシンのパフォーマンス診断を使用するか Azure パフォーマンス診断 VM 拡張機能をインストールすることで、ポータルから直接実行できます。

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

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

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

注:

Azure 仮想マシンのスケールセット全体で PerfInsights を使用する方法については、「PerfInsights とスケール セット VM インスタンス」を参照してください。

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

このシナリオでは、ディスク構成やその他の重要な情報を収集します。これには次のものが含まれます。

  • イベント ログ

  • すべての着信および発信接続のネットワークの状態

  • ネットワークとファイアウォールの構成設定

  • システムで現在実行されているすべてのアプリケーションのタスク一覧

  • Microsoft SQL Server データベースの構成設定 (SQL Server を実行しているサーバーとして VM が識別されている場合)

  • ストレージの信頼性カウンター

  • 重要な Windows 修正プログラム

  • インストールされているフィルター ドライバー

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

注:

このシナリオは、次の各シナリオに自動的に追加されます。

ベンチマーク

このシナリオでは、VM に接続されているすべてのドライブに対して Diskspd ベンチマーク テスト (IOPS および MBPS) を実行します。

注:

このシナリオはシステムに影響する可能性があるため、稼働中の運用システムでは実行しないでください。 また、このシナリオは、問題を回避するために、必要に応じて、専用のメンテナンス期間に実行してください。 トレースまたはベンチマーク テストによってワークロードが増加すると、VM のパフォーマンスに悪影響を及ぼす場合があります。

パフォーマンス分析

このシナリオでは、RuleEngineConfig.json ファイルで指定されているカウンターを使用して、パフォーマンス カウンター トレースを実行します。 VM が、SQL Server を実行しているサーバーとして識別された場合は、パフォーマンス カウンター トレースを実行します。 これは RuleEngineConfig.json ファイルに含まれているカウンターを使用して実行します。 このシナリオには、パフォーマンス診断データも含まれます。

Azure Files 分析

このシナリオでは、特別なパフォーマンス カウンター キャプチャと、ネットワーク トレースを実行します。 このキャプチャには、すべてのサーバー メッセージ ブロック (SMB) クライアント共有カウンターが含まれています。 キャプチャに含まれる重要な SMB クライアント共有のパフォーマンス カウンターをいくつか次に示します。

Type SMB クライアント共有カウンター
IOPS データ要求数/秒
読み取り要求数/秒
書き込み要求数/秒
Latency 平均秒数/データ要求
平均秒数/読み取り
平均秒数/書き込み
IO サイズ 平均バイト/データ要求
平均バイト/読み取り
平均バイト/書き込み
スループット データ バイト数/秒
読み取りバイト数/秒
書き込みバイト数/秒
キューの長さ Avg.読み取りキューの長さ
Avg.書き込みキューの長さ
Avg.データ キューの長さ

高度なパフォーマンス分析

高度なパフォーマンス分析を実行する場合は、並行して実行するトレースを選択します。 必要に応じて、それらのすべて (パフォーマンス カウンター、Xperf、ネットワーク、および StorPort) を実行できます。

注:

このシナリオはシステムに影響する可能性があるため、稼働中の運用システムでは実行しないでください。 また、このシナリオは、問題を回避するために、必要に応じて、専用のメンテナンス期間に実行してください。 トレースまたはベンチマーク テストによってワークロードが増加すると、VM のパフォーマンスに悪影響を及ぼす場合があります。

PerfInsights で収集される情報の種類

Windows VM、ディスクまたは記憶域プールの構成、パフォーマンス カウンター、ログ、およびさまざまなトレースに関する情報が収集されます。 これは、使用しているパフォーマンス シナリオによって異なります。 次の表で詳細に説明します。

収集されるデータ パフォーマンスのクイック分析 ベンチマーク パフォーマンス分析 Azure Files 分析 高度なパフォーマンス分析
イベント ログの情報 はい はい はい はい はい
システム情報 はい はい はい はい はい
ボリューム マップ はい はい はい はい はい
ディスク マップ はい はい はい はい はい
実行中のタスク はい はい はい はい はい
ストレージの信頼性カウンター はい はい はい はい はい
ストレージ情報 はい はい はい はい はい
Fsutil 出力 はい はい はい はい はい
フィルター ドライバー情報 はい はい はい はい はい
Netstat 出力 はい はい はい はい はい
ネットワーク構成 はい はい はい はい はい
ファイアウォール構成 はい はい はい はい はい
SQL Server の構成 はい はい はい はい はい
パフォーマンス診断トレース * はい はい はい はい はい
パフォーマンス カウンター トレース ** はい はい
SMB カウンター トレース ** はい
SQL Server カウンター トレース ** はい はい
XPerf トレース はい
StorPort トレース はい
ネットワーク トレース はい はい
Diskspd ベンチマーク トレース *** はい

パフォーマンス診断トレース (*)

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

各ルールは次の項目で構成されます。

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

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

  • 高いリソース使用量:
    • 高い CPU 使用量: CPU 使用量が高い期間を検出し、それらの期間中に CPU 使用量が最も高いコンシューマーを表示します。
    • 高いメモリ使用量: メモリ使用量が高い期間を検出し、それらの期間中にメモリ使用量が最も高いコンシューマーを表示します。
    • 高いディスク使用量: 物理ディスク上のディスク使用量が高い期間を検出し、それらの期間中にディスク使用量が最も高いコンシューマーを表示します。
    • 高解像度ディスク使用量: 物理ディスクごとに 50 ミリ秒あたりの IOPS、スループット、および I/O 待機時間のメトリックを表示します。 ディスク調整期間をすばやく特定するときに役立ちます。
  • サポート技術情報: 特定のサポート技術情報 (KB) 記事がインストールされていないかどうかを検出します。
  • ディスク: 特定のディスク構成設定を検出します。
  • SQL: 特定の SQL 設定を検出します。
  • ネットワーク: 特定のネットワーク設定を検出します。
  • サーバー クラスター: 特定のサーバー クラスター構成設定を検出します。
  • システム: 特定のシステム構成設定を検出します。
  • CLR: 管理対象プロセスでの長いガベージ コレクションの一時停止を検出します。

注:

現時点では、.NET Framework 4.5 以降のバージョンが搭載された Windows バージョンがサポートされています。

パフォーマンス カウンター トレース (\*\*)

次のパフォーマンス カウンターを収集します。

  • \System、\Process、\Processor、\Memory、\Thread、\PhysicalDisk、および \LogicalDisk
  • \Cache\Dirty Pages、\Cache\Lazy Write Flushes/sec、\Server\Pool Nonpaged、Failures、および \Server\Pool Paged Failures
  • \Network Interface の下の選択されたカウンター、 \IPv4\Datagrams,\IPv6\Datagrams, \TCPv4\Segments, \TCPv6\Segments, \Network Adapter, \WFPv4\Packets, \WFPv6\Packetss, \UDPv4\Datagrams, \UDPv6\Datagrams, \TCPv4\Connection, \Network QoS\Policy Packets, \Per Processor Network Interface Card Activity, \Microsoft Winsock BSP

SQL Server インスタンス向け

  • \SQL Server:Buffer Manager、\SQLServer:Resource Pool Stats、および \SQLServer:SQL Statistics\
  • \SQLServer:Locks、\SQLServer:General、Statistics
  • \SQLServer:Access Methods

Azure Files 向け

\SMB Client Shares

Diskspd ベンチマーク トレース (***)

Diskspd I/O ワークロード テスト (OS ディスク [書き込み] とプール ドライブ [読み取り/書き込み])

VM での PerfInsights ツールの実行

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

ツールの要件

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

  • 以下のオペレーティング システムがサポートされています。

    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2012
    • Windows 11
    • Windows 10

SQL Server へのアクセス

VM に SQL Server インスタンスがインストールされている場合、PerfInsights はアカウント NT AUTHORITY\SYSTEM を使用して SQL Server インスタンスにアクセスし、構成情報を収集してルールを実行します。 アカウント NT AUTHORITY\SYSTEM には、各インスタンスのサーバー状態の表示権限と SQL 接続権限が付与されている必要があります。そうしないと、PerfInsights は SQL Server に接続できず、PerfInsights レポートには SQL Server 関連の情報が表示されません。

運用 VM でこのツールを実行したときに発生する可能性のある問題

  • Xperf または Diskspd を使用するように構成された任意のベンチマーク シナリオまたは "高度なパフォーマンス分析" シナリオの場合、このツールは VM のパフォーマンスに悪影響を与える可能性があります。 稼働中の運用環境ではこれらのシナリオを実行しないでください。

  • Diskspd を使用するように構成された任意のベンチマーク シナリオまたは "高度なパフォーマンス分析" シナリオの場合は、I/O ワークロードに干渉するバックグラウンド アクティビティが他に存在しないことを確認してください。

  • 既定では、ツールは、一時ストレージ ドライブを使用してデータを収集します。 トレースが長時間有効になっている場合は、収集されたデータ量が関連している可能性があります。 これにより使用できる一時ディスク上の領域が減ることがあるため、このドライブに依存するすべてのアプリケーションに影響を与える場合があります。

PerfInsights の実行方法

PerfInsights は、Azure パフォーマンス診断 VM 拡張機能をインストールすることによって仮想マシンで実行できます。 また、スタンドアロン ツールとしても実行できます。

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

このオプションの詳細については、「Install Azure Performance Diagnostics VM Extension (Azure パフォーマンス診断 VM 拡張機能をインストールする)」を参照してください。

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

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

  1. PerfInsights.zip をダウンロードします。

  2. PerfInsights.zip ファイルのブロックを解除します。 これを行うには、PerfInsights.zip ファイルを右クリックし、 [プロパティ] を選択します。 [全般] タブで [ブロックの解除] を選択し、 [OK] を選択します。 このアクションにより、他のセキュリティ プロンプトは表示されずに、確実にツールが実行されます。

    [ブロックの解除] が強調表示された PerfInsights プロパティのスクリーンショット

  3. 圧縮された PerfInsights.zip ファイルを一時ドライブ (既定では通常、D ドライブ) に展開します。

  4. 管理者として Windows コマンド プロンプトを開いて PerfInsights.exe を実行し、使用可能なコマンド ライン パラメーターを表示します。

    cd <the path of PerfInsights folder>
    PerfInsights
    

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

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

    PerfInsights /run <ScenarioName> [AdditionalOptions]
    

    パフォーマンス分析シナリオを 5 分間実行するには、以下の例を使用できます。

    PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics
    

    次の例を使用して、Xperf とパフォーマンス カウンターをトレースする高度なシナリオを 5 分間実行できます。

    PerfInsights /run advanced xp /d 300 /AcceptDisclaimerAndShareDiagnostics
    

    ベンチマーク シナリオを 5 分間実行するには、以下の例を使用できます。

    PerfInsights /run benchmark /d 300 /AcceptDisclaimerAndShareDiagnostics
    

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

    PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics /sa <StorageAccountName> /sk <StorageAccountKey>
    

    /list コマンドを使用すると、利用可能なすべてのシナリオとオプションを検索できます。

    PerfInsights /list
    

    注:

    シナリオを実行する前に、PerfInsights から、診断情報を共有し、使用許諾契約書に同意するよう求めるプロンプトが表示されます。 これらのプロンプトを省略するには、 /AcceptDisclaimerAndShareDiagnostics オプションを使用します。

    有効な Microsoft のサポート チケットをお持ちで、サポート エンジニアからの依頼に従って PerfInsights を実行している場合は、 /sr オプションを使用してサポート チケット番号を入力してください。

    既定では、PerfInsights は自動的に最新バージョンに更新されます。 自動更新を省略するには、 /SkipAutoUpdate または /sau パラメーターを使用してください。

    期間を切り替えるスイッチ /d が指定されていない場合は、PerfInsights から、VM の低速シナリオ、Azure Files シナリオ、および高度なシナリオの実行中に発生した問題を報告することを求められます。

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

診断レポートを確認する

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

[検索結果] タブを選択します。

PerfInsights レポートの [概要] タブにある [検索結果] タブのスクリーンショット。

PerfInsights レポートの [ストレージ] タブにある [検索結果] タブのスクリーンショット。

注:

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

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

[ストレージ] タブ

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

[ディスク マップ] および [ボリューム マップ] セクションは、論理ボリュームと物理ディスクがどのように関連しあっているかについて説明しています。

物理ディスクの観点 ([ディスク マップ]) では、このテーブルはディスク上で実行されているすべての論理ボリュームを示しています。 次の例では、PhysicalDrive2 は複数のパーティション上に作成された 2 つの論理ボリューム (J および H) を実行しています。

PerfInsights レポートの [検索結果] タブにある [ディスク マップ] セクションのスクリーンショット。

ボリュームの観点 ([ボリューム マップ]) では、このテーブルは各論理ボリュームにあるすべての物理ディスクを示しています。 RAID/動的ディスクの場合は、1 つの論理ボリュームを複数の物理ディスク上で実行する可能性があることに注意してください。 次の例では、 C:\mount は、物理ディスク 2 と 3 で SpannedDisk として構成されたマウント ポイントです。

PerfInsights レポートの [検索結果] タブにある [ボリューム マップ] セクションのスクリーンショット。

[SQL Server] タブ

ターゲット VM が SQL Server インスタンスをホストしている場合は、レポートに SQL という名前の別のタブが表示されます。

[SQL] タブとその下のサブタブのスクリーンショット。

このセクションには、 [検索結果] タブと、VM 上でホストされている SQL Server インスタンスごとの追加のタブが含まれています。

[検索結果] タブには、見つかった SQL に関連するすべてのパフォーマンスの問題の一覧が推奨事項と共に含まれています。

次の例では、PhysicalDrive0 (C ドライブを実行しています) が表示されます。 これは、modeldevmodellog の両方のファイルが C ドライブに配置され、それらが別の種類 (それぞれ、データ ファイルとトランザクション ログなど) であるためです。

modeldev および modellog ファイル情報のスクリーンショット。

SQL Server の特定のインスタンスのタブには、選択されたインスタンスに関する基本的な情報を表示する一般的なセクションが含まれています。 タブにはまた、高度な情報 (設定、構成、ユーザー オプションなど) のための追加のセクションも含まれています。

[診断] タブ

[診断] タブには、PerfInsights を実行している期間中の、コンピューター上の最大の CPU、ディスク、およびメモリ コンシューマーに関する情報が含まれています。 また、システムに欠けている可能性のある重要な修正プログラム、タスクの一覧、および重要なシステム イベントに関する情報を見つけることもできます。

使用する外部ツールのリファレンス

Diskspd

Diskspd は、Microsoft からのストレージ ロード ジェネレーターおよびパフォーマンス テスト ツールです。 詳細については、Diskspd に関するページをご覧ください。

Xperf

Xperf は、Windows パフォーマンス ツールキットからのトレースをキャプチャするためのコマンドライン ツールです。 詳細については、「Windows Performance Toolkit – Xperf (Windows パフォーマンス ツールキット - Xperf)」を参照してください。

次のステップ

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

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

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

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

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

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

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