失敗した要求トレースを契機とするメモリダンプ (FREBDump) の取得方法 について

Last Update: feedback 共有

こんにちは。IIS サポート チームです!

弊社にお問い合わせいただくお客様に、スムーズな解決をご提供するためにお役に立てる内容をご提供させていただきます。
今回は IIS のワーカープロセス (w3wp.exe) のメモリダンプを取得する手法の一つ、FREBDump の手順についてご説明します。

FREBDump とは

FREBDump とは、失敗した要求トレース (通称: FREB) を契機として ProcDump を実行することを指します。

(なお FREBDump は正式名称ではございません。失敗した要求トレース が 英語で Failed Request Event Buffering (FREB) と呼ばれること、ProcDump の Dump から FREBDump と呼称しております。)

このログ取得のポイントは FREB の発火点によって ProcDump を制御するところにあります。

FREBDump のメリット

FREBDump でのダンプ採取のメリットは、ProcDump よりも柔軟なタイミングでのダンプの取得ができることです。
例えば以下は ProcDump では難しいですが、 FREBDump では可能になります。

  1. IIS サーバーが受け取ったリクエストで特定の時間以上になった場合にダンプを取る
  2. 40X や 50X など、特定のエラーレスポンスで応答されたタイミングでダンプを取る

例えば、お客様から IIS サーバーが不定期にスローダウンし、リクエストのレスポンスが遅くなるといったお問い合わせをいただくことがございます。
このような場合は 1) のように特定の時間でダンプを生成するように設定することで調査をすることができます。

目次

1. 前提条件

1.1. 事前に準備が必要なものについて

FREBDump の取得のためには以下がインストールされている必要がございます。

  • 失敗した要求トレース (FREB) がインストールされていること
  • ProcDump がインストールされていること

IIS Manager を起動し、中央のアイコンで、[IIS] - [失敗した要求トレース] が存在することを確認します。

もしこちらが存在しない場合は、失敗した要求トレース (FREB) のモジュールが存在しません。
その場合、サーバー マネージャーの役割サービスの追加で、[Web サーバー] - [状態と診断] - [トレース] をインストールします。インストールの際は、IIS の再起動が発生しますのでご注意ください。

FREB のインストールが必要な場合について

2. FREBDump の設定手順

2.1. FREB の有効化

IIS マネージャーを起動し、[Web サイト] から現象が発生している <対象となるウェブサイト> を選択します。

[操作] - [構成] - [失敗した要求トレース] をクリックします。

[失敗した要求のトレースが、この Web サイトに対して有効になっていません。] という警告が表示される場合は、クリックしてログを有効にします。

FREBの有効化の説明図1

[操作] ウィンドウの [サイトのトレースの編集] をクリックし、[有効にする] にチェックがあることを確認してください。

FREBの有効化の説明図2

2.2. FREB の規則作成

[失敗した要求トレースの規則] - [操作] - [追加] をクリックします。

[トレースするコンテンツの指定] で、<トレースするコンテンツ>、
[トレース条件の定義] で、<トレース条件の定義>、
[トレース プロバイダーの選択] で、 <トレースプロバイダー> を設定し [終了] をクリックします。

FREB の規則作成手順図

2.3. ProcDump の設定

2.3.1. サーバーでの customActionEnable の設定

IIS マネージャーの[接続] ウィンドウで、最上位に存在するサーバーの [構成エディター] をダブルクリックします。
セクションで system.applicationHost/sites を選択します。

構成エディターの選択図

(コレクション) の行を選択し、右側にある […] ボタンをクリックします。
[コレクション エディター] 画面で、<対象となるウェブサイト> を選択します。
プロパティより、[traceFailedRequestsLogging] を展開し、以下を設定します。

  • [customActionsEnabled] : True
  • [maxLogFileSizeKB] : 1024

サーバー側構成エディターの設定図

コレクション エディター ウィンドウを閉じ、適用します。

構成エディターの適用図

2.3.2. ウェブサイト側での customActionExe などの設定

サーバーを選択しましたが、次は <対象となるウェブサイト> を選択して、
サイトに存在する構成エディターを開きます。
[場所] が <対象となるウェブサイト> Web.config であるを確認してください。
[セクション] で system.webServer/tracing/traceFailedRequests を選択します。

サイトの構成エディターの選択図

(コレクション) の行を選択し、右側にある […] ボタンをクリックします。
[コレクション エディター] 画面で、path が * となっている行を選択し、
[プロパティ] ウィンドウの各項目に ProcDump の設定を行います。

以下それぞれを入力してください。

  • [customActionExe] : <インストールした ProcDump のパス>
  • [customActionParams] : <ProcDump の引数>
  • [customActionTriggerLimit] : <customActionExe の試行回数>

※弊社から特に指示がない場合は以下の通りに行ってください。

  • [customActionExe] : <C:\Procdump\procdump.exe などのインストールした .exe のパス>
  • [customActionParams] : -accepteula -ma -s 30 -n 2 %1% <C:\ProcDump\output などのダンプファイル保存場所>
  • [customActionTriggerLimit] : 2

構成エディターによる ProcDump の設定図

コレクション エディター ウィンドウを閉じます。
[操作] ウィンドウで、[適用] を選択します。

以上で設定は終了です。

2.4. FREBDump のアンインストール方法について

<対象となるウェブサイト> の構成エディタで設定した以下3つの値を削除します。

  • customActionExe
  • customActionParams
  • customActionTriggerLimit

サーバーの構成エディタで設定した以下の設定を変更します

  • customActionEnabled = True の設定を False

2.5. FREB の設定の削除について

FREB 自体を無効化する場合は、
<対象となるウェブサイト> の 失敗した要求トレースの規則 を開き、作成した規則を選択し、削除 を押してください。

2.6. ProcDump の削除について

ProcDump はインストールしたフォルダごと削除いただくことでアンインストールできます。

3. FREBDump の検証方法について

こちらは 失敗した要求トレースを契機とするメモリダンプ (FREBDump) でよくいただくご質問について をご確認ください。

4. FREBDump の FAQ について

こちらは 失敗した要求トレースを契機とするメモリダンプ (FREBDump) でよくいただくご質問について をご確認ください。

以上の Q&A を確認したもののご不明点が解決しない場合は、私共サポートまでお問い合わせいただけますと大変幸いです。

なお、本ブログは弊社の公式見解ではなく、予告なく変更される場合があります。
もし公式な見解が必要な場合は、弊社ドキュメント (https://docs.microsoft.com/ や https://support.microsoft.com) をご参照いただく、もしくは私共サポートまでお問い合わせください。