DebugDiag を使用してメモリ ダンプを収集する方法


解説

プロセスのメモリ ダンプは、Webサイトのトラブルシューティングに使用される非常に効率的な情報源であり、Sitecoreサポートはこれをご提供いただくよう頻繁にお客様にリクエストしています。

ユーザーのリクエストに応じて(オンデマンド)、あるいは特定のイベントに応じて(条件付き) 、特定のプロセスのメモリ ダンプを収集できる様々なツールが存在します。

当KB記事では、DebugDiagアプリケーションを使用してメモリ ダンプを収集する方法について説明します。

メモリ ダンプを収集するその他の方法については、以下の記事をご参照ください。

DebugDiag の概要とダウンロード リンク

DebugDiag とは、豊富なメモリ ダンプの収集・分析機能をもったフリーのツールです。本ツールでは、様々なルールを設定して、オンデマンド・条件付きの両方の方法でメモリ ダンプを収集することが可能です。

また、グラフィカル ユーザー インターフェース(GUI)を使用できるため、コマンド ラインを使用する必要がありません。

通常、DebugDiagのインストールは DebugDiag 2.0 Collection、DebugDiag 2.0 Analysis、DebugDiag 2.0 RuleBuilder (beta)などのツールを含みますが、当記事では、DebugDiag 2.0 Collectionツールのみを説明します。

ツールは、以下のリンクからダウンロードが可能です。
https://www.microsoft.com/en-us/download/details.aspx?id=49924

メモリ ダンプ ファイルの収集 -  オンデマンド

メモリ ダンプ ファイルをオンデマンドで収集するには、以下の手順を実施します。

DebugDiag がメモリ ダンプを収集し、ファイル パスをメッセージ ボックスに表示します。共有する前に、他の場所にファイルを移動してください。

【重要】: 常に「Create Full Userdump」を選択してください。「Mini userdump」には、調査に有益な情報が十分に含まれていないためです。

条件付きメモリ ダンプ ファイルの収集

DebugDiagでは、メモリ ダンプを収集する際、様々なトリガーを指定することが可能です。当ツールでは、以下の基本的なルールがサポートされています。

メモリやCPUの高負荷に関わるシナリオを調査するには、対応するシステムのパフォーマンス カウンターを使用できます。

以下は、基本的なツールの使用例です。 

  1. 例外発生時にメモリ ダンプを収集する

    以下のブログ 記事が当シナリオを詳細に説明しています。
    https://techcommunity.microsoft.com/t5/iis-support-blog/using-debugdiag-to-capture-memory-dumps-on-first-chance/ba-p/377131

    上記記事の内容はDebugDiag 2.0に適用できます。

    (※参考・日本語ブログ記事: https://jpdsi.github.io/blog/web-apps/LogCollection4/)

  2. パフォーマンス カウンターの値が特定値を超えた際にメモリ ダンプを収集する

    以下のブログ 記事が当シナリオを詳細に説明しています。:
    http://kate-butenko.blogspot.com/2012/06/how-to-gather-dump-with-debugdiag.html

    上記記事の内容はDebugDiag 2.0に適用できます。

    (※参考・日本語ブログ記事: https://dany1468.hatenadiary.org/entry/20110827/1314413735 )

【重要】: 必ず「Full Userdump」を選択してください。