適用先
Windows Server 2008 Service Pack 2 Windows Server 2008 Enterprise Windows Server 2008 Enterprise without Hyper-V Windows Server 2008 Datacenter Windows Server 2008 Datacenter without Hyper-V Windows Server 2008 Standard Windows Server 2008 Standard without Hyper-V

現象

X86 ベースのバージョンの Windows Server 2008 Service Pack 2 (SP2) を実行しているコンピューターを使用するいると仮定します。システム ページ テーブル エントリ (Pte) の使用率は高くなります。このような場合は、システムの仮想アドレス空間不足になりかなり断片化しています。注:

  • この問題が発生した場合、システムが不安定になった。

  • ドライバーにはほとんどありませんが発生した特定の割り当てパターンによっては、この問題が発生します。この特定の割り当てのパターンの詳細については、「原因」セクションを参照してください。コンピューターが、不安定な状態のときに、ダンプ ファイルを収集し、分析のため、マイクロソフト カスタマー サービス & サポートに問い合わせてください。

  • システムの仮想アドレスとシステム Pte の断片化に関する情報を入手するには、次の操作のいずれかを実行する必要が。

    • ライブ カーネル モード デバッグ セッションを確立します。

    • ローカルのカーネル モード デバッグ セッションを確立します。

    • カーネル モードのダンプ ファイルを収集します。

    次のカーネル デバッガー コマンドを使用して、セッションを確立し、情報を入手できます。

    • 合計空き容量、最大のメモリ ブロックを表示するのには、次のコマンドを実行し、プールとシステム Pte) などのさまざまなカーネル メモリ リソースで使用されるメモリの量。

      !vm 21 このコマンドによって返されるメッセージは次のようになります。

      14: kd> !vm 21*** Virtual Memory Usage ***   Physical Memory:     4191796 (  16767184 Kb)   Page File: \??\C:\pagefile.sys     Current:  17408000 Kb  Free Space:  17362464 Kb     Minimum:  17408000 Kb  Maximum:     17408000 Kb   Available Pages:      980816 (   3923264 Kb)   ResAvail Pages:      4005065 (  16020260 Kb)   Locked IO Pages:           0 (         0 Kb)   Free System PTEs:      55716 (    222864 Kb)   Modified Pages:        24737 (     98948 Kb)   Modified PF Pages:     24356 (     97424 Kb)   NonPagedPool Usage:    51445 (    205780 Kb)   NonPagedPool Max:     522998 (   2091992 Kb)   PagedPool 0 Usage:    169861 (    679444 Kb)   PagedPool 1 Usage:     24692 (     98768 Kb)   PagedPool 2 Usage:     19764 (     79056 Kb)   PagedPool 3 Usage:     19469 (     77876 Kb)   PagedPool 4 Usage:     20109 (     80436 Kb)   PagedPool Usage:      253895 (   1015580 Kb)   PagedPool Maximum:    523264 (   2093056 Kb)   Session Commit:        12273 (     49092 Kb)   Shared Commit:         37334 (    149336 Kb)   Special Pool:              0 (         0 Kb)   Shared Process:        22380 (     89520 Kb)   Pages For MDLs:            1 (         4 Kb)   PagedPool Commit:     253895 (   1015580 Kb)   Driver Commit:          3829 (     15316 Kb)   Committed pages:     3862488 (  15449952 Kb)   Commit limit:        8507657 (  34030628 Kb)   VA Type           CurrentUse  Peak      Limit          Failures    Unused  130 Mb       0 Mb   OPEN              0   SessionSpace         60 Mb      66 Mb   OPEN              0   ProcessSpace         16 Mb       0 Mb   OPEN              0   BootLoaded           26 Mb       0 Mb   OPEN              0   PfnDatabase         118 Mb     248 Mb   OPEN              0   NonPagedPool        208 Mb     210 Mb   OPEN              0   PagedPool          1096 Mb    1096 Mb   OPEN              0   SpecialPool           0 Mb       0 Mb   OPEN              0   SystemCache         140 Mb     992 Mb   OPEN              0    SystemPtes 214 Mb      222 Mb   OPEN              0   Hal                   4 Mb       0 Mb   OPEN              0   SessionGlobal        12 Mb      12 Mb   OPEN              0   Driver Images        24 Mb       0 Mb   OPEN              0   NPSpecialPool         0 Mb       0 Mb   OPEN              0   ProtoPTE Pool         0 Mb       0 Mb   OPEN              0    Maximum contiguous unused VA:    8 Mb 
    • システム Pte の情報を表示するのには次のコマンドを実行します。

      !sysptes 1 この情報には、数とサイズの空きブロックが含まれています。このコマンドによって返されるメッセージは次のようになります。

      14: kd> !sysptes 1System PTE Information  Total System Ptes 88048    starting PTE: c0400000      free ptes: c0402c80   number free: 1.      free ptes: c0402ca8   number free: 1.      free ptes: c0408020   number free: 3.      free ptes: c0408098   number free: 4.      . . . 3755 entries cut  . . .      free ptes: c07ddd30   number free: 13.      free ptes: c07dddd8   number free: 4.      free ptes: c07dde18   number free: 4.      free ptes: c07dde58   number free: 1.      free ptes: c07dde80   number free: 26.      free ptes: c07ddf70   number free: 10.   free blocks: 3763    total free: 22432    largest free block: 89 

    「現象」に記載されている問題が発生したとき、"CurrentUse"のインジケーターによって返される、 ! vm 21コマンドは、"SystemPtes"カテゴリ時間の経過と共に増加します。「フリー ・ ブロック」値を表示することによって、同時にシステム Pte 断片化を発生する可能性がで返されますが、 ! sysptes 1時間の経過と共にコマンドです。「未使用」と"最大連続使用されていない VA"によって返される値を見ながら、消費と使用可能なカーネル仮想アドレス空間の断片化を診断できる、 ! vm 21コマンドです。カーネル モードのダンプ ファイルでは、パラメーターの変化を時間の経過を観察することはできません。

原因

この問題は、デバイス ドライバーやカーネル モードのコードが割り当てられ、大規模なメモリ バッファー (I/O バッファー) を解放するために発生します。このようなバッファーを実装するには、システム Pte を使用します。要求されるサイズの大きい領域は、2 メガバイト (MB) の倍数ではない、システム Pte 領域内での断片化が発生します。

解決策

修正プログラムの情報

この修正プログラムをインストールした後は、1 つまたは複数のカーネル ドライバーの特定の割り当てのパターンが発生したときに、断片化を軽減するのには割り当てアルゴリズムが最適化されています。2 MB を超えるシステム PTE のマッピングの要求は、断片化を減らすために 2 MB の倍数に丸められます。サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この修正プログラムは、この資料に記載された問題があったシステムのみに対して適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにお問い合わせのうえ、修正プログラムを入手してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。