Windows 10 に追加されたメモリダンプの設定項目について

スポンサーリンク

Windows 10 にメモリ ダンプの種類として「アクティブ メモリ ダンプ」、および「ディスク領域が少ないときでもメモリ ダンプの自動削除を無効にする」の項目が追加されています。

アクティブ メモリ ダンプについて

アクティブ メモリ ダンプについて、Windows 10 というよりは現在開発中の Windows Server 2016 で効力を発するメモリ ダンプの種類となります。

Hyper-V ホストとして動作しているコンピューターの場合、仮想マシンを動作させるためにかなりの物理メモリを搭載すると思いますが、完全メモリダンプを取得する場合、Hyper-V ホストで使用している物理メモリの内容に加え、仮想マシンで使用しているメモリの内容も含まれてしまいます。また、メモリ ダンプ ファイルの出力に対してかなりの時間を要してしまいます。

このアクティブ メモリ ダンプは、その仮想マシンに割り当てられているメモリの内容をフィルタリングすることで、Hyper-V ホストで使用しているメモリの内容だけをメモリ ダンプ ファイルに出力する機能となります。これにより、出力されるメモリ ダンプ ファイルの容量は完全メモリよりもはるかに小さくなります。

どの程度メモリ ダンプ ファイルの容量が削減できるかは、以下のサイトを参照してください。

アクティブ メモリ ダンプに設定すると、レジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl の DWORD 値 CrashDumpEnabled の値が 1 (完全メモリ ダンプ) となっていますが、DWORD 値 FilterPages が 1 に設定されます。

メモリ ダンプの自動削除について

システム クラッシュ後に生成される memory.dmp ファイルを格納/削除するかどうかを決定するアルゴリズムは以下のようになっています。 (Kernel dump storage and clean up behavior in Windows 7 – WER Services より抜粋、意訳)

  1. 最初にオンライン クラッシュ分析サービスへカーネル フォールトを報告します。
  2. コンピューターがレジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl の DWORD 値 AlwaysKeepMemoryDump が 1 に設定されている場合、ディスク上にダンプ ファイルを格納します。
  3. コンピューターが Windows Server SKU の場合、ディスク上にダンプ ファイルを格納します。
  4. コンピューターがドメインに参加している (例えば、企業のコンピューター) 場合、ディスク上にダンプ ファイルを格納します。
  5. コンピューターがドメイン参加していない (例えば、家庭用のコンピューター) 場合、
    1. ディスクの空き容量が 25 GB 以上の場合、ディスク上にダンプ ファイルを削除します。
    2. ディスクの空き容量が 25 GB 以下の場合、ダンプファイルを削除します。

レジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl の DWORD 値 AlwaysKeepMemoryDump について、以前はレジストリ エディタで直接編集する必要がありましたが、GUI 上から設定できるようになりました。

「ディスク領域が少ないときでもメモリ ダンプの自動削除を無効にする」のチェック ボックスをオンにすると、レジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl の DWORD 値 AlwaysKeepMemoryDump が 1 に設定されます。

ドメインに参加していないクライアント環境 (SSD といった容量の小さいディスクを搭載) で、万一 BSOD が発生した場合に原因調査のためにメモリ ダンプ ファイルを削除されないためにはこの設定を有効にする必要があります。

[参考]