次の方法で共有


パフォーマンス診断 (PerfInsights) CLI ツールを使用した Windows 仮想マシンのパフォーマンスに関する問題のトラブルシューティング

適用対象: ✔️ Windows VM

Performance Diagnostics (PerfInsights) 拡張機能は、診断データを収集して分析するセルフヘルプ診断ツールであり、Azure での Windows 仮想マシン (VM) のパフォーマンスの問題のトラブルシューティングに役立つレポートを提供します。 パフォーマンス診断を使用して、次の 2 つのモードのいずれかでパフォーマンスの問題を特定してトラブルシューティングします。

  • 継続的診断 (プレビュー) は、5 秒間隔でデータを収集し、5 分ごとに高いリソース使用量に関する実用的な分析情報を報告します。
  • オンデマンド診断は、1 つの時点で収集されたデータに基づく、さらに詳細なデータ、分析情報、推奨事項などにより、継続的なパフォーマンスの問題のトラブルシューティングに役立ちます。

この記事では、Windows VM にパフォーマンス診断拡張機能をダウンロードし、CLI ツールを使用してツールを実行する方法について説明します。 また、ポータルからパフォーマンス診断を 実行し、ARM テンプレートまたは PowerShell を使用してパフォーマンス診断拡張機能を デプロイ

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

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

パフォーマンス診断を使用して、さまざまなシナリオのトラブルシューティングを行うことができます。 以降のセクションでは、継続的およびオンデマンドパフォーマンス診断を使用してパフォーマンスの問題を特定してトラブルシューティングするための一般的なシナリオについて説明します。 継続的パフォーマンス診断とオンデマンド パフォーマンス診断の比較については、「 パフォーマンス診断の分析情報とレポート」を参照してください。

Note

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

継続的診断

継続的なパフォーマンス診断を使用すると、VM を定期的に監視して、リソースの使用率が高い状態を特定できます。

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

オンデマンド診断

クイック分析

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

  • イベント ログ

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

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

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

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

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

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

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

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

Note

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

ベンチマーク

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

Note

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

パフォーマンス分析

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

Azure Files 分析

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

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

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

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

Note

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

Windows でパフォーマンス診断はどのような情報を収集しますか?

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: 管理対象プロセスでの長いガベージ コレクションの一時停止を検出します。

Note

現時点では、.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\Packets、\UDPv4\Datagrams、\UDPv6\Datagrams、\TCPv4\Connection、\TCPv6\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 ディスク [書き込み] とプール ドライブ [読み取り/書き込み])

CLI ツールを使用して VM でパフォーマンス診断を実行する

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

ツールの要件

  • このツールを、パフォーマンスに問題がある 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]
    

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

    PerfInsights /list
    

    CLI ツールを使用して、さまざまな トラブルシューティング シナリオを実行する方法の例を次に示します

    • 継続的なパフォーマンス診断を実行します。

      PerfInsights /run always on /sau 
      

      継続的なパフォーマンス診断を停止するには、 Ctrl + C キーを押すか、ターミナルを閉じます。

    • パフォーマンス分析シナリオを 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>
      

    Note

    シナリオを実行する前に、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 レポートの [ストレージ] タブにある [検索結果] タブのスクリーンショット。

Note

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

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

[ストレージ] タブ

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

[診断] タブ

Diagnostic タブには、パフォーマンス診断の実行中にコンピューター上の上位 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 フィードバック コミュニティに製品フィードバックを送信することもできます。