Windowsタスクマネージャーによって報告される合計メモリ使用量が、すべてのプロセスのメモリ使用量の合計よりもはるかに多いのはなぜですか?[複製]


98

タスクマネージャーには合計メモリ使用量が6 GBの90%で表示されますが、250 MBを超えるRAMを使用している単一プロセスはなく、実行中のすべてのプロセスのRAM使用量の合計は2 GB未満です。私はもう試した:

  • Windows 8タスクマネージャーの[プロセス]タブの[メモリ]列の数値を確認します。
  • タスクマネージャーの[詳細]タブにある[ワーキングセット]、[プライベートワーキングセット]、[共有ワーキングセット]、および[コミットサイズ]列を確認します。
  • Process Explorerで同様のメモリ関連の列を確認します。
  • Sysinternals RAMMapを実行しようとしましたが、メモリ不足の危機に直面している間、起動時にクラッシュします。問題を解決すると、RAMMapは正常に実行されますが、その時点では手遅れです。

いずれも、使用されているメモリが非常に少ないことを示しています。

インターネット上のさまざまなバージョンのウィンドウで、この質問の変形を求める人がたくさんいます。それらの一部は、多くの場合ソフトウェアを再インストールすることにより、メモリ不足の問題を解決します。Windowsを最初から再インストールすることもあります。私はこれらすべてが共有する一般的な質問への答えを探していますが、それは他の場所では答えられないようです:

  1. 使用量の合計が、どのように数えようとしても、リストされているすべてのプロセスが使用するメモリよりもはるかに大きいのはなぜですか?
  2. どのプログラムがメモリを使用しているかを知らずに、メモリが使用されていることをウィンドウがどのように「知る」ことができますか?
  3. どのプロセスがメモリを使い果たしてもリストに表示されない可能性がありますか?
  4. 使用済みメモリに関する詳細情報を提供できるソフトウェアはありますか?

私自身の問題に固有の詳細:Windows 8.1へのアップグレード以降、ログインするとすぐに問題が発生します。プログラムを実行するとすぐにメモリが不足します。Process Explorerで、iexplore.exeのいくつかのインスタンスが実行されており、明らかに自動的に開始されていることに気付きました。1つの特定のインスタンスは、数MBのRAMのみを使用していましたが、数億のページフォールトを示しました。気まぐれに、私はその特定のプロセスを強制終了し、メモリ使用量はすぐに70%減少しました。

1つの特定の質問につながる:

  • おそらく数MBしか使用していない1つのプロセスを強制終了して、数GBを解放できますか?

そして(おそらく難しい)ボーナス質問:

  • Windowsを再インストールする以外に、コンピューターを再起動するたびにこれを実行する必要がないようにするにはどうすればよいですか?

3
カーネルメモリも使用量にカウントされます。RAMMApのポスト画像:blogs.technet.com/b/askperf/archive/2010/08/13/...
magicandre1981

2
質問のタイトルは「なぜメモリが足りないのか」とすべきだと思います。
surfasb

この質問に具体的に答えることは不可能です。インストールされているプログラムを一覧表示します。または、パフォーマンスモニターから実行中のプロセスのダンプを取得することもできます。
surfasb 14年

1
実際にコンピューターを完全にシャットダウン/再起動していますか、それともハイブリッドシャットダウン(Windows 8の既定)を使用していますか?Windows 8に切り替えた後、同様の問題が発生しました。コンピューターの電源を入れ直した後でも、1人のドライバーが物理RAMをますます使用し、それを返さないと考えています。数週間で、数ギガバイトに蓄積しました。そこで、数日ごとに「再起動」をクリックするか、シフトを押しながら「シャットダウン」をクリックして、実際にPCをシャットダウンします。
ロバート

2
私の場合、「動的メモリ」を有効にしたため、Hyper-Vによって予約された「ドライバーロック」メモリでした。すべてのVMを停止し、設定を無効にして、再起動する必要がありました。RAMMapの提案をありがとう。
ダジェルフ

回答:


7

ところで、「メモリ」という用語を使用しないようにしてください。それは多くの混乱を引き起こします。物理メモリを意味する場合、「物理メモリ」または「RAM」と言います。仮想メモリを意味する場合は、そう言ってください。バッキングストアを意味する場合は、そう言います。

使用量の合計が、どのように数えようとしても、リストされているすべてのプロセスが使用するメモリよりもはるかに大きいのはなぜですか?

オペレーティングシステムは、選択の余地がない限り物理メモリ(RAM)を浪費しないためです。

どのプログラムがメモリを使用しているかを知らずに、メモリが使用されていることをウィンドウがどのように「知る」ことができますか?

プログラムがそれを使用していないため。たとえば、終了したばかりのプログラムのコードを含むメモリを考えてください。それを使用しているプログラムはありません。しかし、そのメモリは空きではなく、有用なデータが含まれているため(プログラムが再び実行される場合)使用されます。

どのプロセスがメモリを使い果たす可能性がありますが、現在はリストに表示されますか?

プロセスでは使用されません。

使用済みメモリに関する詳細情報を提供できるソフトウェアはありますか?

RAMMapはこれを行うことができます。

可能性は2つしかありません。RAMを使用することも、無駄にすることもできます。明らかに、最初の方が優れています。空きメモリは永遠に無駄になります。4GBのマシンは、明日6GBを使用するために現在2GBを使用できません。「今すぐ無料で使いたいので、後で使えるように」と思っているなら、それを忘れてください。あなたは今、それを使用することができますし、後でそれを使用しています。

おそらく数MBしか使用していない1つのプロセスを強制終了して、数GBを解放できますか?

物理メモリではなく、バッキングストアが不足しています。十分な空き物理メモリはありますが、OSがバッキングを必要とする仮想メモリの割り当てを維持するにはバッキングストアが不十分です。

このプロセスは数MBの物理メモリのみを使用していましたが、OSはそのために数GBのバックアップ仮想メモリを予約する必要があったかもしれません。たとえば、プロセスが2GBファイルの書き込み可能なプライベートメモリマッピングを作成するとします。OSは、そのマッピングのすべての単一バイトに書き込む可能性があるため、プロセス用に2GBのバックアップ仮想メモリを予約する必要があります。また、それらのいずれにも書き込むことはありません。これが、適切なサイズのページングファイルが必要な理由です。

最新のオペレーティングシステムは、キャッシュされない(RAMを必要とする)多くのチェック(有望なバッキングストア)を書き込みます。現金化される可能性のある大きな小切手を大量に書いた場合(バッキングストアとして約束されている場合)、銀行に十分なお金(無料のRAM)がある場合でも、小切手を書き続けることはできません(バッキングストアを約束)あなたが持っているように)。ページングファイルはバッキングストアを追加し、OSがチェックを書き続けることを可能にします。


14
PS:RAMとVMの違いがわからないからではなく、「メモリ」という言葉を使用していますが、実際に何も情報を提供せずに「メモリ」が不足しているとコンピュータが言っているからです。手段。(私は以前のコメントで指定の理由のために、それはRAMを意味想定したが、私は確かではないよ。)私はむしろあなたが精巧な金融比喩よりも、(必要であれば、私は調べることができます)実際の単語を使用すると思います:)
ジョシュ

91
-1なぜなら、回答とすべてのコメントを読んだ後でも、合計使用メモリが、リストされているすべてのプロセスで使用されるメモリよりもはるかに大きい理由はまだ明らかではないからです。
ベネットマケルウィー14

6
その用語は、プログラムが使用していないにもかかわらずメモリが「使用」されている場合、「使用済み」や「無料」などの通常の単語の意味とはまったく異なります。おそらく、Microsoftの用語であり、あなたの用語ではありません。とにかく、たとえば、RAMの50%が現在実行中のプログラムによって使用されており、25%が実行中のプログラムによって使用されておらず、将来役立つ可能性があるが破棄されるデータが含まれているとします。それらを足し合わせて「Memory:75%」と表示しても、ユーザーに有用な情報は伝えられません。それが、広範囲にわたる混乱の原因だと思います。
ベネットマケルウィー14

2
@BennettMcElweeメモリ使用量を1つの単純な数に減らす良い方法はありませんが、ユーザーはそれを主張します。これにより、開発者は不快な立場に置かれます。常に役立つとは限らない番号を提供したり、番号を提供したりすることはできません。ほとんどのOSおよびGUI開発者は最初のオプションを選択します。多くの混乱を招く数を提供します。あなたの質問が「RAMを増やせば私のシステムがより良くなるだろうか」という答えなら、その答えは-専門家にとってさえ、伝えるのは非常に、非常に難しいです。
デビッドシュワルツ14

2
@DavidSchwartzあなたの答えはそのようなことを説明するものではなく、単に述べているだけです。その特定の主張を裏付けるリンクを提供できますか?「物理メモリXX%」は、物理的に取り付けられたRAMのXX%が現在使用されており、他のプロセスで使用できないことを意味しています。90%を超えるとシステムがロックアップしやすくなり、アプリケーションが100%を超えるメモリを割り当てようとすると、完全にクラッシュするという事実によって検証されたと思います。私の経験では、これはほとんどのシステムが動作する標準的な体制ではありません。
ジョンノイハウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.