[SV2003] 大きなサイズのメモリ確保要求で、一時的に固まる問題

3 月 13th, 2009 | Tags: , ,

MSKB956341によると、Windows Server 2003において、大容量のメモリ割り当て操作を行うと、数秒~2分ほどフリーズしてしまうそうです。

原因は

簡単に説明すると、次のようになります(独自解釈を含みます)。

  • 「大容量の連続したメモリ領域を確保したい」という要求が発生する。
    • 具体的には、MMAllocateContiguousMemory や MmAllocateContiguousMemorySpecifyCache。
  • 連続した領域を確保するために、他のすべてアプリケーションのワーキングセット(物理メモリの使用)を減らしていく。
    • 逆に言うと、仮想メモリ(スワップ、ページファイル)の使用が増える。
  • メモリ処理はクリティカル(重大)なものであるから、連続したメモリ領域が確保されるまでは、他の処理を止める。
  • 確保されるまで、しばらくフリーズしてしまう。

対処法は

KB956341に、MmEmptyAllWorkingSets (全アプリケーションのワーキングセットを減らす機能) をトレースするための修正プログラムが配布されています。

メモリ処理自体に問題はなく、その不適切なメモリ確保を行うドライバに問題がある、ということでしょう。修正プログラムを導入してトレースし、ドライバを特定することが最善策です。

No comments yet.
TOP