(長くなったので、
まとめは次の日記にします)
この仕事をやっていると、
Windows Serverの
メモリダンプを採取して、メーカーのサポートに解析に出したりすることがあります。
例として
Windows Server 2008 R2で、
メモリダンプの設定項目を確認しましょう。
(写真1)
Windows Server 2008 R2の
メモリダンプの設定の規定値
(写真2)
Windows Server 2008 R2の
メモリダンプの種類の選択肢
メモリダンプの種類は次の3種類です。
・最少メモリダンプ(256KB)
・カーネルメモリダンプ
・完全メモリダンプ
規定値では「カーネルメモリダンプ」になっています。
STOPエラーなどの不測の事態が発生した際に、最後の砦としてメモリダンプの調査をサポート部門に出します。
すると「○○ドライバでXXが発生している」などの回答が返ってきます。(もちろん不明な場合もあります)
せっかくメモリダンプを調査に出しても、規定値のカーネルメモリではわからず、「完全メモリダンプを採取して再発行してください」なんて事があります。
それを未然に防ぐため、多くの場合は「完全メモリダンプ」に変更します。
しかし様々な理由で完全メモリダンプが採取できない事があります。
まあその多くはブートパーティション(以下:Cドライブ)の空き領域不測が原因です。
ファイルサーバーレベルでも4GBやそれを超える容量のメモリを搭載する事が多くなってきているので、Cドライブの容量は十分に検討する必要があります。
それでもCドライブの空きが足りなくなってきた場合、手っ取り早い対策としてページングファイルをDドライブなどに移動させる事が良くあるのですが、これをやってしまうと有事の際にメモリダンプが採取できなくなる場合があります。
と言うわけでメモリダンプを採取するためには、ページングファイルとメモリダンプファイルの配置とサイズを考える必要があります。
この辺の事が富士通の資料に詳しく掲載されています。
「大容量メモリダンプファイル 設計ガイド」がとても参考になります。
http://jp.fujitsu.com/platform/server/primergy/technical/construct/・富士通 > コンピュータプラットフォーム > サーバ > PRIMERGY > 技術情報 > サーバ構築ガイド > Windowsシステム構築ガイド
→
http://jp.fujitsu.com/platform/server/primergy/technical/construct/pdf/win2008-memory-dump.pdf→・Windows Server 2008 / 2008 R2 大容量メモリダンプファイル 設計ガイド(739KB)
マイクロソフトのサポート技術情報も読みましょう。
http://support.microsoft.com/kb/254649/ja・Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7 と Windows Server 2008 R2 のメモリ ダンプ ファイル オプションの概要
http://support.microsoft.com/kb/969028/ja・Windows Server 2008 でカーネルまたは完全メモリ ダンプ ファイルを生成する方法
http://support.microsoft.com/kb/886429/ja・Windows Server 2003 でメモリ ダンプ ファイルを新しい場所を構成するときの考慮事項
まず、メモリダンプファイルの配置について。
規定値では以下の場所に設定されています。
%systemroot%\MEMORY.DMP
つまりC:\Windows\MEMORY.DMPですね。
メモリダンプファイルはCドライブ以外の場所に配置する事ができます。
十分に空いているドライブに配置しましょう。
例えばD:\MEMORY.DMPとか。
それからpagefile.sysとMEMORY.DMPが同じドライブに配置される場合は、一時ファイルであるDUMPxxxx.tmpは不要です。
ではページングファイルとメモリダンプファイルの配置とサイズを見ていきましょう。
まずはこれが基本です。(富士通資料のA-1)
■pagefile.sys - Cドライブ
■DUMPxxxx.tmp - (不要)
■MEMORY.DMP - Cドライブ
○Windows Server 2003/同R2
○Windows Server 2008
○Windows Server 2008 R2
pagefile.sysとMEMORY.DMPのサイズは、両方とも物理メモリサイズ+少々です。
マイクロソフトのKB254649によると、物理メモリ+1MB以上
富士通の資料によると、物理メモリ+15MB以上
つまりページングファイルとメモリダンプファイルで、Cドライブには物理メモリの2倍+少々の容量が必要になります。
ページングファイルは物理メモリサイズよりも少し大きめのサイズに設定しましょう。
次にこれは良くあるパターンです。(富士通資料のB-1)
■pagefile.sys - Cドライブ
■DUMPxxxx.tmp - Cドライブ
■MEMORY.DMP - Dドライブ
○Windows Server 2003/同R2
○Windows Server 2008
○Windows Server 2008 R2
pagefile.sysとMEMORY.DMPのサイズは、両方とも物理メモリサイズ+少々で、上記と同じです。
しかしMEMORY.DMPがCドライブ以外の場合、一時ファイルとしてDUMPxxxx.tmpがpagefile.sysと同じCドライブに確保されます。
結局Cドライブには物理メモリの2倍超のサイズが必要なうえに、Dドライブにも物理メモリと同じサイズ+少々が必要になります。
つまりこの組み合わせにはメリットがありませんね。
知らなかった(汗)
今までこのパターンは良くやっていた。
まあマイクロソフトのKB886429によると、Cドライブに空きが足りなくてもメモリダンプは作成されるみたいです。
ただし再起動後にページングファイルのサイズが確保できず、小さくなってしまうようです。
と言うわけで少なくとも設計時点では十分な容量を確保すべきなので、結果としてやはりこのパターンを選ぶメリットは感じられないな。
Cドライブには物理メモリの2倍の空きが必要だが、Dドライブに複数世代のメモリダンプを残したい場合くらいだろうか。
これは新しいパターンです。(富士通資料のA-2)
■pagefile.sys - Dドライブ
■DUMPxxxx.tmp - Dドライブ
■MEMORY.DMP - Cドライブ
×Windows Server 2003/同R2
×Windows Server 2008
○Windows Server 2008 R2
Windows Server 2003/2008では、Cドライブに必要なサイズのページングファイルが確保されていない場合、完全メモリダンプを採取する事ができません。
あきらめましょう。
Windows Server 2008 R2では、このパターンでも完全メモリダンプが採取できるようです。
Cドライブには物理メモリと同量だけの空きがあればOKなので、メリットもあります。
これも新しいパターンです。(富士通資料のB-2)
■pagefile.sys - Dドライブ
■DUMPxxxx.tmp - (不要)
■MEMORY.DMP - Dドライブ
×Windows Server 2003/同R2
×Windows Server 2008
○Windows Server 2008 R2
これいいね。そうなんだ。
Windows Server 2008 R2なら、これもいいですね。
このB-2か、前記のA-1のどちらかがお勧めになります。
Windows Server 2003/2008では、Cドライブに必要なサイズのページングファイルが確保されていない場合、完全メモリダンプを採取する事が出来ないのはどうにもなりません。
ここから先はWindows Server 2008以降でサポートされる、新しいページングファイル「dedicateddumpfile.sys」を利用したパターンです。
マイクロソフトのKB969028や富士通の資料を読むとわかりますが、Windows Server 2008 R2ではdedicateddumpfile.sysを利用する必要はなく、従来からのpagefile.sysだけでも大丈夫です。
Windows Server 2008 R2ではpagefile.sysをDドライブなどに配置しても、完全メモリダンプを採取できるので、このdedicateddumpfile.sysを利用する必要がありません。
つまりdedicateddumpfile.sysを利用するのは、実質は(R2ではない)Windows Server 2008のみです。
dedicateddumpfile.sysを使用するパターンです。(富士通資料のC)
■最小限のpagefile.sys - Cドライブ or Dドライブ
■dedicateddumpfile.sys - Dドライブ
■DUMPxxxx.tmp - Dドライブ
■MEMORY.DMP - Cドライブ
×Windows Server 2003/同R2
○Windows Server 2008
○Windows Server 2008 R2
最小限のpagefile.sysは任意のドライブにあればOKです。
富士通の資料の例ではpagefile.sysは16MBになっています。
しかしdedicateddumpfile.sysとMEMORY.DMPが別ドライブの場合は、例によってdedicateddumpfile.sysと同じドライブにDUMPxxxx.tmpが必要になります。
これもdedicateddumpfile.sysを使用するパターンです。(富士通資料のD)
■最小限のpagefile.sys - Cドライブ or Dドライブ
■dedicateddumpfile.sys - Dドライブ
■DUMPxxxx.tmp - (不要)
■MEMORY.DMP - Dドライブ
×Windows Server 2003/同R2
○Windows Server 2008
○Windows Server 2008 R2
最小限のpagefile.sysは任意のドライブにあればOKです。
富士通の資料の例ではpagefile.sysは16MBになっています。
dedicateddumpfile.sysとMEMORY.DMPが同じドライブなので、DUMPxxxx.tmpが不要です。
Wondows Server 2008の場合、これはお勧めパターンですね。
結局富士通の資料のそのまんまなんですが、この3つがお勧めパターンになってしまいました。
A-1
B-2
D
長くなったので、
まとめは次の日記にします。