現在オフラインです。再接続するためにインターネットの接続を待っています

Memory Pool Monitor (Poolmon.exe) を使用してカーネル モードのメモリ リークのトラブルシューティングを行う方法

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

この記事は、以前は次の ID で公開されていました: JP177415
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
概要
この資料では、Memory Pool Monitor ユーティリティ (Poolmon.exe) をトラブルシューティング ツールとして使用して、メモリ タグを監視する方法について説明します。Poolmon は、システムのページ カーネル プールと非ページ カーネル プール、およびターミナル サービス セッション用に使用されるメモリ プールからのメモリ割り当てに関してオペレーティング システムが収集するデータを表示します。このデータはプール割り当てタグごとにグループ化されます。この情報は、マイクロソフト製品サポート サービスでカーネル モードのメモリ リークを検出するために使用されることがあります。

メモリ リークは、アプリケーションやプロセスが使用するために割り当てられたメモリを、終了後に解放しないために発生します。時間の経過と共に使用可能なメモリがなくなり、システムが正常に機能しなくなることがあります。
詳細
ここではまず、Poolmon を使用するためにタグ モードを有効にする方法について説明します。次に、トラブルシューティングのために Poolmon を使用して情報を収集する方法について説明します。

タグ モードを有効にする

PoolMon を実行する前に、プールのタグ付けを有効にしてコンピュータを再起動する必要があります。プールのタグ付け機能により、プール メモリに関する統計情報の収集と計算が行われ、情報がメモリ割り当てのタグ値で並べ替えられます。

: Windows Server 2003 ではプールのタグ付けはデフォルトで有効になっているため、有効にする必要はありません。

Windows NT 4.0、Windows 2000、または Windows XP ベースのコンピュータでプールのタグ付けを有効にするには、次のいずれかの方法を使用します。

方法 1 : レジストリを編集する

警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

タグ モードを有効にするレジストリ値を変更して Poolmon.exe を実行できるようにするには、次の手順を実行します。
  1. レジストリ エディタを起動します。
  2. 次のレジストリ キーを見つけます。
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
  3. GlobalFlag の値を書き留めるか、
    Session Manager
    キーを保存します。
  4. 右側のウィンドウの [GlobalFlag] 値をダブルクリックします。
  5. 値を 16 進数の 00000400 に変更します。

    : GlobalFlag 値に 0x00000400 を設定すると、設定後は 400 としか表示されませんが、Poolmon の情報を出力画面に表示させるには、4 の前の 0 をすべて入力する必要があります。
  6. コンピュータを再起動します。
: デバッグが終了したら、GlobalFlag 値を手順 3. で書き留めた値に戻します。

方法 2 : Gflags.exe ユーティリティを使用する

また、プールのタグ付けを有効にするために Global Flags Editor (Gflags.exe) ユーティリティを使用することもできます。Gflags.exe は Windows NT 4.0 リソース キット、および Windows 2000、Windows XP と Windows Server 2003 の CD-ROM の \Support\Tools フォルダにあります。

: Windows Server 2003 ではプールのタグ付けは永続的に有効になっているため、[Global Flags] ダイアログ ボックスの [Enable Pool Tagging] チェック ボックスは変更できなくなっており、プールのタグ付けを有効または無効にするコマンドはエラーになります。

Gflags.exe を使用して変更を行うには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、gflags.exe と入力し、[OK] をクリックします。
  2. [Enable Pool Tagging] チェック ボックスをオンにします。
  3. [Apply] をクリックし、[OK] をクリックします。
  4. コンピュータを再起動します。
: デバッグが終了したら、上記の手順を繰り返して、プールのタグ付けを無効にします。

Poolmon を使用して情報を収集する

PoolMon は、コマンド ウィンドウ内にプール タグ情報を表示します。PoolMon で表示される情報をすべて表示するには、方向キーまたは PageUp キーおよび PageDown キーを使用します。

Poolmon.exe は Windows NT 4.0 リソース キット、および Windows 2000、Windows XP と Windows Server 2003 の CD-ROM の \Support\Tools フォルダにあります。

次の手順を実行してタグ情報のコピーと保存を行います。この手順を 15 分間隔で 2 時間繰り返します。更新情報はメモ帳ファイルの末尾に追加していきます。
  1. [スタート] ボタンをクリックし、[設定] をポイントし、[コントロール パネル] をクリックします。次に、[コンソール] をダブルクリックします。

    : Windows 2000 では、次の手順を実行する必要があります。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
    2. タイトル バーを右クリックし、[プロパティ] をクリックします。
  2. [オプション] タブをクリックし、[簡易編集モード] をクリックし、[挿入モード] をクリックします。
  3. [レイアウト] タブをクリックし、[画面バッファのサイズ] の幅を 99 に変更し、[OK] をクリックします。
  4. [プロパティの適用] ボックスが表示されたら、[同じタイトルのウィンドウに適用する] をクリックし、[OK] をクリックします。
  5. [スタート] ボタンをクリックし、[プログラム] をポイントして、[コマンド プロンプト] をクリックします。
  6. Windows NT 4.0 の CD の Support\Debug\platform フォルダにある Poolmon.exe を検索します。Poolmon.exe が存在するドライブとフォルダに移動します。Windows 2000 の CD では Poolmon.exe は Support.CAB ファイル内にあります。Support.CAB は \Support\Tools フォルダの下にあります。
  7. Poolmon.exe と入力します。
  8. Poolmon で 2 番目の列 "type" に "paged" という値が表示されるまで P キーを押します。
  9. B キーを押すと、列の値が降順で並べ替えられます。
  10. 画面の内容全体を選択し、Enter キーを押します。
  11. [スタート] ボタンをクリックし、[すべてのプログラム] (または [プログラム])、[アクセサリ] の順にポイントし、[メモ帳] をクリックします。
  12. [編集] メニューの [貼り付け] をクリックします。
  13. 手順 7. を繰り返して、"nonpaged" という値を検索します。
  14. 手順 8. ~ 11. を繰り返し、貼り付けます。
Poolmon.exe には、さらに出力を並べ替えるコマンド キーがいくつかあります。下に示す文字を押すと、処理が実行されます。各コマンドが動作するまで数秒かかります。以下にコマンドのいくつかを挙げています。
P - タグ一覧をページ、非ページ、混合によって並べ替えます。P はそれぞれを繰り返します。
B - タグを最大バイト利用数の順に並べ替えます。
M - タグを最大バイト割り当て数の順に並べ替えます。
T - タグをタグ名のアルファベット順で並べ替えます。
E - ページ、非ページの合計を一番下に表示します。順に切り替えます。
A - タグを割り当てサイズの順に並べ替えます。
F - タグを "frees" で並べ替えます。
S - タグを allocs と frees の差で並べ替えます。
E - ページ、非ページの合計を一番下に表示します。順に切り替えます。
Q - 終了します。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
298102 サード パーティ製のドライバによって使用されているプール タグの検索方法
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 177415 (最終更新日 2004-03-17) を基に作成したものです。
debugref allocs frees krnl paged nonp nonpaged non-paged pages gflags gflags.exe pool byte monitor
プロパティ

文書番号:177415 - 最終更新日: 05/12/2011 18:22:00 - リビジョン: 6.0

Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Microsoft Windows XP Professional x64 Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Microsoft Windows XP Media Center Edition 2005 Update Rollup 2, Microsoft Windows XP Tablet PC Edition, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows Small Business Server 2003 Premium Edition, Microsoft Windows Small Business Server 2003 Standard Edition

  • kbhowto KB177415
フィードバック