「コミット済み」メモリが実際の RAM 容量よりもはるかに大きいのはなぜですか?

「コミット済み」メモリが実際の RAM 容量よりもはるかに大きいのはなぜですか?

http://i.imgur.com/cilRmfD.png

ウイルススキャンを 2 回実行しましたが、どちらも今のところ何も見つかりません (Malware Bytes と Avira Rescue)。ゲーム中に、システムのメモリが不足しているためゲームを終了するよう勧める Windows ポップアップが表示されます。これは、ブラウジング中にも発生することがあります。メッセンジャー プログラムからリンクをクリックしてブラウザーで開くときなど、コンピューターの動作が遅くなり、頻繁にハングアップするようです。

何が原因かはわかりません。プロセス タブのメモリ使用量は、実際のメモリのそれほど高い割合には達しません。


ちなみに、ディスク使用量が時々 100% まで急上昇するのは当然のことでしょうか? 調査によると、そうであるようです。

答え1

「コミットされたメモリが実際の RAM 容量よりもはるかに大きいのはなぜですか?」「コミット」は主にプロセスプライベートであるためバーチャルアドレス空間であり、その一部は RAM 内に、一部はページファイル内に存在します。

また、ストレージをまったく占有しないものもあります。これは、割り当てられているがアクセスされていない場合、つまりまだ「フォールトイン」されていない場合です。ただし、将来アクセスされた場合はストレージを占有するため、「コミット制限」にカウントされます。それからシステムが「申し訳ございませんが、空きがありません」と言うには遅すぎます。

重要なのはバーチャルメモリの利点は、物理メモリ(RAM)よりもはるかに大きい容量を使用できることです。

ところで... RAM が 8 GB でコミット制限が 32 GB なので、ページファイルは約 24 GB のようです。したがって、「コミット」は 32 GB まで高くなる可能性があります。(現時点ではほぼその高さなので、ページファイルを削減または削除するのは得策ではありません。)

一方、使用されるRAMはそれだけです。つまり、もちろん使用される RAM + 使用されるページファイルは、使用される RAM よりも大きくなる可能性があります。

結局のところ、仮想メモリの重要な点の 1 つは、物理メモリ (RAM) よりも多くの仮想メモリを使用できることです。

コミットされたメモリを使用しているものを確認するには、タスク マネージャーの [詳細] タブを確認し、[コミット サイズ] 列を有効にする必要があります。

また、「コミット サイズ」列の合計は「コミット チャージ」(マシン上で 30.1 GB)にはなりません。これは、非ページ プールとページ プール、およびコピー オン ライト セクション、ページ ファイル バックアップ セクション、AWE マッピングなどの「微妙な」メカニズムなど、他の要素がコミット チャージに寄与するためです。ただし、これらは通常、プロセス プライベート vas と比較すると小さいものです。

そのタブの「メモリ (プライベート ワーキング セット)」列は、「プロセス」タブの「メモリ」に表示されるものに対応しています。これは、コミットされた仮想アドレス空間用に各プロセスに現在割り当てられている RAM です。残りはページファイルにあります。ただし、プロセスには他の種類のアドレス空間 (主に「マップ」と呼ばれるもの) があり、その一部も RAM にあります。OS によって作成される、プロセスに固有ではないシステム全体のものも、RAM を消費します。

つまり、「プロセス」タブの「メモリ」列は、使用されている RAM の合計を加算するものではありません。合計使用量のうち、各プロセスによってプライベートに使用されている量のみが表示されます。

答え2

これについて考える簡単な方法は、1995 年まで遡ることです。

ハイエンドPCには8MBのRAM(そう、メガバイトです)。しかし、Windows NT(Windows 2000になり、Windows XPになりました)では、アプリケーションは2MBのRAMにアクセスできると考えていました。イギリス記憶の数は膨大で、想像もつかないほどです。

そして、あなたのアプリケーションはそれを実行できます:

  • 2GBのメモリを割り当てることができる
  • 実際のPCには8MBのRAM

どうしてそんなことが可能なのでしょう? PC に 8 MB の RAM しかないのに、私のプログラムが 2 GB のメモリをアクティブに使用できるなんてあり得るのでしょうか? これらすべてのデータはどこに行くのでしょうか? 明らかに RAM チップには入りません。

答えはバーチャルメモリ

アプリケーションは4KBのチャンクでメモリを割り当てます。ページRAM 内のすべてのページがいっぱいの場合:

  • WindowsはRAM内のあまり使われないページを選択します
  • その4KBのページのコピーをページファイルハードドライブに
  • そしてその新しく利用可能になったページをあなたの応用

そして、それを使用しているプログラムがページ必要ですか?

  • Windowsは、アプリケーションがアクセスしようとしているページが「交換された」に出てページファイル
  • RAM内の他のページを解放する
  • 新しく利用可能になったページの内容をハードディスクに保存された値で埋める

その後、アプリケーションは何も起こらなかったかのようにページにアクセスできるようになります。

今日も同じことが言える

  • あなたが持つことができます"関与する"31 GBの"メモリ"
  • 8GBの"ラム"

RAM はメモリの 1 種類にすぎないからです。

答え3

Windows はページファイルを使用します。これは RAM に似ていますが、ハード ドライブに保存されます。これは非常に低速ですが、コンピューターに搭載されているメモリよりも多くのメモリを使用する必要がある場合に便利です。Windows は、より多くのメモリを保存する必要があるが、それを保存するための RAM のスペースがない場合、しばらく使用されていないメモリの一部をページファイルに保存します。

コミット メモリとは、コンピュータに搭載されているメモリとページ ファイルを合わせたものです。プログラムがメモリを使いすぎて、Windows がページ ファイルにいくつかのデータを保存することがあるようです。ページ ファイルは、Windows が保存しているすべてのメモリを収容できるほど大きくなかったため、サイズを増やす必要がありました。サイズは増加し続け、ついには限界に達しました。これで Windows はページ ファイルをさらに増やすことができず、つまりメモリを追加で保存できないため、メモリ使用量を減らすためにいくつかのプログラムを閉じるように指示するしかありません。コンピュータが遅いのは、ページ ファイルからデータを読み込む必要があるためです。これは RAM から直接読み込むよりもはるかに遅く、ページ ファイルはハード ドライブに保存されるため、ディスク使用量が非常に高くなります。

開いているプログラムの数を減らし、プレイしているゲームや使用しているプログラムに十分なメモリがコンピューターにあることを確認してください。お役に立てれば幸いです。

関連情報