この記事では、Azure Web Apps上で動作するSitecore XPのトラブルシューティングに使用する情報を収集するツールや方法について説明しています。
以下の節では、次のような典型的なパフォーマンスの事象が発生した際に関連するデータを収集する方法について解説します。
- CPUの高使用率。
- メモリ リーク。
- 応答時間が長いなど、アプリケーションが遅い。
Microsoft Azure Web Apps (App Service)には、ウェブ アプリケーションのトラブルシューティングのための、拡張低レベル診断を可能とするKUDU ツールセットが付属しています。
Azure Web AppにデプロイされたSitecore XPアプリケーション用のKUDUを起動するには、以下のURLにアクセスします。
https://<AzureWebAppの名称>.scm.azurewebsites.net/
註:Azure ポータルにログインし、かつ対象のウェブ アプリケーションが属するリソース グループの共同作成者(Contributor)としてのアクセス権限を有している必要があります。
Azure App Serviceインスタンスには、デフォルト イメージ内にSysinternals suiteが含まれています。Sysinternals suiteは、KUDUコンソールで次のパスにアクセスすると見つかります。
D:\devtools\sysinternals
また、ProcDumpツールは、ここからダウンロードし、D:\home\Dumpsなどの任意のロケーションにアップロードして使用する事もできます。
メモリ ダンプを収集するには:
- KUDUを開き、Process Explorerにアクセスします。
- 目的のアプリケーションに対応するw3wp.exeのPID (プロセスID)を控えます。
- Debug Console -> CMDにアクセスします。
- コマンド ウインドウで、dumpsフォルダーに移動します。
- 以下のコマンドを実行して、プロセスのフル メモリ ダンプを生成します。
procdump.exe -accepteula -ma [プロセスのPID]
-ma — プロセス全体のメモリをダンプ ファイルに書き込む。
-accepteula — Sysinternalsライセンス契約に自動的に合意する。
註:手動でのメモリ ダンプ収集が適切でない場合のために、ProcDumpユーティリティは自動的にメモリ ダンプを収集する条件を指定する機能を備えています。このトピックに関する詳細につきましては、ProcDumpを使用してメモリ ダンプを収集するにはの記事をご参照ください。
メモリ ダンプを収集するには:
- KUDUを開き、Process Explorerにアクセスします。
- w3wp.exeプロセス(SCMでないもの)を右クリックして、コンテキスト メニューを開きます。
- コンテキスト メニューで、Download Memory Dump -> Full Dumpをクリックします。
*.dmpファイルがダウンロードされます。これを、WinDbgなどの一般的なツールを使用して解析することができます。
註:メモリ ダンプを正常に解析するには、対象OSからのSOS.dllファイルが必要です。
SOS.dllファイルを入手するには:
- KUDUを開き、Debug console -> CMDにアクセスします。
- 上部にあるボタンを使用して、システム ドライブに移動します。
- 適切な.NET Frameworkフォルダ(例:C:\Windows\Microsoft.NET\Framework64\v4.0.30319 など)から、SOS.dllファイルを見つけます。
- SOS.dllファイルをダウンロードします。
Azureポータルでメモリ ダンプを収集するには:
- Azureポータル(https://portal.azure.com)にログインします。
- トラブルシューティングが必要なAzure Web Appを選択します。
- 「Diagnose and solve problems」をクリックし、次に「Diagnostics as a Service」をクリックします。
- 新しいブレードで、以下のフィールドを設定します。
- Application Type – ASP.NETにセットします。
- Diagnosers –Memory Dumpチェックボックスをチェックします。Event Viewer LogsやHttp Logsも必要な場合は、それらもチェックします。
- Instances –App Serviceプランが複数のインスタンスを使用するよう設定されている場合、このフィールドで全てのインスタンスのログを収集するか、特定のインスタンスのログを収集するかを設定できます。
- Runをクリックして、ログを収集します。ブレードには処理の状況が表示され、収集されたデータの解析が行われます。データはD:\home\data\DaaS\Logsフォルダー配下に保存されます。
パフォーマンス プロファイルを収集するには:
- KUDUを開き、Process explorerセクションにアクセスします。
- w3wp.exeプロセス(SCMでないもの)で、「Collect IIS Events」チェックボックスをチェックし、Start Profilingをクリックします。
- 対象のウェブ アプリケーションのホーム ページをリクエストします。また、プロファイリングが確実に実行されていることを確認するために、KUDUページでRefreshをクリックします。
- ウェブ アプリケーション上で、パフォーマンスの事象を再現します。
- KUDUのProcess explorerセクションに戻ります。
- Stop Profilingをクリックします。
この処理が終了すると、profile_*_w3wp_*.diagsessionファイルがPC上にダウンロードされます。
ダウンロードされたファイルをMicrosoft Visual Studioで開いて、ファイルを更に解析することができます。