この質問にはすでに答えがあります:
過去数日間、メモリが不足しているため、1日に2、3回PCを再起動する必要がありました。32GB DDR3 1866MHz RAMがあります。
以下は、poolmonをバイトでソートした非ページドライバーのメモリ使用量のスナップショットのスクリーンショットです。
何か異常に見えますか?
この質問にはすでに答えがあります:
過去数日間、メモリが不足しているため、1日に2、3回PCを再起動する必要がありました。32GB DDR3 1866MHz RAMがあります。
以下は、poolmonをバイトでソートした非ページドライバーのメモリ使用量のスナップショットのスクリーンショットです。
何か異常に見えますか?
回答:
「メモリ不足」、「メモリ不足」などは、通常、コミット料とコミット制限の関係ではなく、空きRAMとは関係ありません。
タスクマネージャーの[パフォーマンス]タブの[メモリ]セクションの画面スナップショットを確認すると、コミットの請求と制限が表示されるため便利です。
ただし、ここでは2つのことが異常に見えます。これらが問題の根本を特定するのに十分だと思います。約21,000のプロセスオブジェクト(「Proc」)と約23,000のスレッドオブジェクト(「Thre」)があります。
比較のために、ここの私のシステム、Windows 10も約10日間稼働しており、これらのオブジェクトはそれぞれ約200と3200しかありません。
これは恐らく、プロセスを狂わせて作成し、完全に終了させないプログラムを実行していることを示している可能性があります。現時点ではRAMに大きな影響はありませんが(合計で約100 MBの非ページプールを占有します)、プロセスとスレッドが引き続き作成され、削除されない場合、最終的にはほぼすべてのRAMを消費します。非ページプールにコミットされたRAMは「コミットチャージ」の一因となります。そのため、最終的に「メモリ不足」または「メモリ不足」エラーが発生します。
犯人をすばやく見つけるには、タスクマネージャーの[詳細]タブをご覧ください。「ハンドル」列を追加し、その列でソートし、異常に高い値があるかどうか、特に増加し続けているかどうかを確認します。
nb:「スレッド」列はおそらく役に立たないでしょう。多数のスレッドを持つプロセスを探していると便利です-これは不可能なことではありません-しかし、ここでスレッドと同じくらい多くのプロセスがあるという事実はそれを主張します。すべてのプロセスで1つのスレッド(開始)を取得するため、プロセスのペストはそれに伴う同じ数のスレッドのペストをもたらしますが、これはどのプロセスの「スレッド」カウンターにも表示されません。
ただし、sysinternalsツールのプロセスエクスプローラーの「プロセスツリー」ビューが役立つ場合があります。多数のプロセスがその下にあるプロセスを探しています。
それでも解決しない場合は、sysinternals ProcMonツールを使用して、プロセス作成イベントを探してみてください。
場合それはそれをしない、それはおそらくカーネルドライバで行われています。Windows Performance Toolkitを使用して、プロセス作成イベントを見つけます。
コミットチャージの詳細については、以下にリンクした質問に対する回答を参照してください。通常、コミットチャージの不足は、RAMを追加するか、ページファイルサイズを大きくする(または一度に実行するリソースを少なくする)ことで修正されますが、これらの方法はこの問題には役立ちません。非ページプールはページアウトできないため、これらのProcおよびThreオブジェクトは必ずRAMを占有します。また、ページファイルがコミット制限の不足を回避するのに十分な大きさであっても、使用可能なRAMの不足により、システムは最終的に他の問題を示します。