システムはなぜこれほど多くの RAM を消費するのでしょうか?

システムはなぜこれほど多くの RAM を消費するのでしょうか?

すべてのプロセスが合わせて 2GB 強しか使用しないのに、合計 5GB のメモリが使用されるのはなぜですか? システムはなぜこれほど多くの RAM を消費するのですか?

答え1

メモリ不足に陥っていないシステムでは、RAM を解放しようとする理由はありません。実際、RAM を使用すればパフォーマンスが向上するため、システムは可能な限り多くの RAM を使用します。使用されていない RAM は永久に無駄になり、後で RAM を保存することはできません。そのため、最新のオペレーティング システムでは、可能な限り多くの RAM を使用状態に維持しようとします。

RAM を一度解放してから再び解放解除するよりも、RAM をある用途から別の用途に直接移行する方がはるかに効率的です。

この動作は意図的な設計です。メモリを何もせずに放置しておきたい場合は、コンピュータから取り外してデスクの上に置いてください。

「後で使えるように、今すぐにRAMを空けておきたい」と考えているなら、その考えは捨ててください。今すぐ使えるのです。そして後で使用します。ここではトレードオフはありません。

答え2

1 つ目は、列見出しが私の考えどおりであれば、最初の 2 つのプロセスだけで 2 GB を使用しています。(「システム」プロセスはオペレーティング システムではありません。少なくとも、すべてではありません。たとえば、ページ プールと非ページ プール、ファイル キャッシュ、および SUperFetch キャッシュによって使用されるメモリは、「システム」プロセスの一部としては表示されません。)

2つ目は、その列には各プロセスのサイズのみが表示されることです。プライベートワーキングセットですが、各プロセスにはそれよりも多くのRAMがあります。残りは共有ワーキング セット。これはプロセス間で共有できますが、必ずしもそうである必要はありません。共有ワーキング セットをすべて合計しても、残念ながら実際の合計使用量はわかりません。合計使用量はそれらの合計には遠く及びませんし、共有ワーキング セットの最大値と同じくらい小さくなることはほとんどありません。

3 つ目は、OS はプロセスの一部ではない多くのものを保持しています。非ページ プールがあります。ページ プールの常駐 (ページイン) 部分があります。システム ファイル キャッシュ (SuperFetch キャッシュではありません) の常駐部分も、「使用中」(「使用可能」ではない) と見なされるメモリの一部です。(SuperFetch によって使用されるスペースは「使用可能」と見なされます)。

4. これらの使用法のほとんどすべて (非ページ プールを除く) はページング可能であるため、各コンポーネントが「必要とする量」を表すのではなく、「現在の状況でどれだけ使用しているか」を表します。

Windowsでは、RAMに負荷がかかっていなければ、プロセスやその他のページング可能な使用が都合よく増加します。ここでは、現在行っているすべてのことを実行するのに十分なRAMが利用可能です。また、現在実行中のものを閉じることなく。これはメモリ不足が発生しているシステムではないので、当然 Windows は RAM を節約しているわけではありません。

まったく同じワークロードを 6 GB の RAM しかないマシンで実行すると、すべてが多少小さくなることはわかりますが、それほど大きくはなりません。すべてを 4 GB の RAM マシンで実行すると、すべてが確実に小さくなります (また、実行速度が少し遅くなる可能性がありますが、それほど大きくはなりません。これは、現在の構成の RAM にあるものの多くが「古い」ためである可能性が高いためです。ディスクに書き出すことに大きな害はありません)。

現在の設定に戻ります。たとえば、さらに 8 GB の RAM を必要とする何かを実行する必要が突然生じた場合、Windows は、最もアクティブでないプロセスから順に、既存の作業プロセスを縮小して、そのスペースを確保します。RAM はガソリンとは異なります。David Schwartz がうまく表現しているように、後で使用できるように、今 RAM を節約する必要はありません。Windows は、RAM を今 1 つの用途に使用し、後で別の用途に使用できるようにします。これが、デマンド ページング オペレーティング システムです。

関連情報