
コンピュータのメモリを増設したため、非ページ プールが非常に大きくなりました (2 GB の RAM で 96 MB だったのが、16 GB で 715 MB に増加しました)。
タスク マネージャーはプロセスが原因で非ページ プールが 1 MB 未満であると報告しているので、これは理解できません。また、Poolmon は最大の非ページ プール メモリ使用量として 35 MB を報告しています。
このスクリーンショットは起動直後に撮影したものなので、ドライバーなどのメモリリークではありません。イメージを作成して VM で起動すると、起動後に使用されるメモリは 350 MB のみです。
Microsoft は、非ページ プールのサイズを制限するために、レジストリに次の値を指定します。https://technet.microsoft.com/ja-jp/library/cc976155.aspxしかし、そうして再起動しても問題は解決しません。バイト単位(ドキュメントにそう記載されています)、KB 単位、MB 単位で値を指定してみましたが、うまくいきませんでした。
Linux では、最大 15.2 GB の 3D シーンをレンダリングできます。Windows では、何らかの保護とこの巨大なプールのため、12 GB しか使用できず、ディスクへのスワップが開始されるため、1 回のレンダリングに Linux の 1 分 24 秒ではなく 20 分以上かかります。
では、非ページ プールのサイズを制限するにはどうすればよいでしょうか?
答え1
大量のメモリを必要とするプログラム (3D または写真アプリケーションなど) を実行し、ページファイルの使用を開始するのに十分なメモリを確保すると、非ページ メモリが解放されます。
理由はわかりませんが、ページファイルが使用され始めると、非ページ プールは 750 MB から 200 MB に減少し、その後はこのレベルのままになります (多数のプログラムを実行し、大量のメモリを使用する集中的な作業を数時間にわたって行ったときにテスト済み)。
私の場合、Windows7 は合計 16GB のうち 350MB のメモリしかブロックしません (起動時の合計 1GB と比較)。もちろん、より多くのメモリが使用されていますが、これはキャッシュによる有効な使用であり、プログラムの起動を高速化し、データをディスクではなく RAM から読み取るときにメモリを利用できます。このような巨大なデフォルトの非ページ プールは単にメモリが失われ、システムが本来よりもずっと早くスワップを開始する原因になります。
巨大な非ページ プールの開始に関するこのバグは、Windows 7 より前のバージョンでは発生しません。