web-dev-qa-db-ja.com

システムのメモリをすべて使い果たしているものを見つけるにはどうすればよいですか。 (SuperFetchではありません)

タスクマネージャが正しく報告していないように見える場合、どうすればメモリ関連の問題を診断または発見できますか?

私はメモリリークか何かを持っている必要があります - 私は私の12 GBのメモリの75%の使用率にありますが、プロセスのメモリ使用量のタスクマネージャのリストは累積しません。 ).

この「ファントム」メモリ使用量は、システムが稼働している時間に関連して増加するようです。合計118のプロセスがあることがわかります。上位5つのほかに、それらのすべてが50 MB未満です。

一番上のプロセスはFirefoxで、2.6 GBを使用しています。 Adobe Premiere(900 MB) 300 MBのプラグインコンテナ。 275 MBのペールムーン。 Explorer.exe(94 MB).

私の記憶の残りを使い果たしているものを世界でどのように見つけることができますか?タスクマネージャは、使われていることすべてを見ていないようです。おそらく何らかのメモリリークがありますか?またはプログラムが使用済みメモリを正しく解放していませんか?

リソースモニタレポート(クリックすると拡大表示されます):

Resource Monitor Printout

注意:

  1. 私のメインOSドライブはSSDなので、私のシステムではSuperFetchは無効になっています。
  2. そして私は、使われていないラムがラムを「無駄にする」という原則を理解しています。しかし、私のメモリ使用量が容量のピークに近づいていることに気付くと、(自分の懸念からは)後続のプログラムの実行やロードを止め、さらに多くのタスクを閉じるようにタスクを実行します。少なくとも顕著にそして短期間内に)。
  3. メモリがいっぱいになると、SSDの1GBのページファイルが設定した6GBの制限まで拡張されるのを見るのは嫌です。WindowsのようにひどくSSDがひどく落ち込んでいる可能性があるという知識で「汗をかきます」 /本気で本格的なメモリースティックとして使うようになる。 (そのメモで、私はただページファイルを静的1GBにハードキャップするべきですか?)
61
Coldblackice

あなたは通常 RamMap のようなツールであなたの記憶を使い果たしているものへのより良い洞察を得ることができます。

enter image description here拡大するにはクリックしてください

多くの場合、パフォーマンスを向上させるためにRAMに格納されているメモリマップファイルによってメモリが使い果たされることがあります。

RamMapの Active 列に注意してください。それは実際に現在利用されているメモリです。 空きメモリに関する指標は、誤解を招く可能性があります。これには、タスクマネージャなどのWindowsツールが含まれます。

さらに詳しい情報


私はまたあなたの質問からいくつかの追加の点に対処したかったです。

しかし、私のメモリ使用量が容量のピークに近づいていることに気付くと、(自分の懸念からは)後続のプログラムの実行やロードを止め、さらに多くのタスクを閉じるようにタスクを実行します。少なくとも顕著にそして短期間内に)。

あなたの推論は完璧です。ただし、メモリ不足の状況が原因で問題が発生しない限り、この方法は控える必要があります。オペレーティングシステムはこのタスクを処理し、物理メモリが必要なときにページングファイルにデータをフラッシュします。

おそらく、あなたはまたあなたの練習のために間違った指標を使っています。 Commit Charge Process Explorer という用語)に注目してください。

enter image description here

コミット料金は、使用されているすべてのメモリーの合計です。あなたはスクリーンショットで見ることができる、それにも制限があります。その制限は、私の物理メモリのサイズ+私のページングファイルのサイズです。その限界に達するとしたら、それは問題になるでしょう。

それでは、次のトピックに進みます。

メモリがいっぱいになると、SSDの1GBのページファイルが設定した6GBの制限まで拡張されるのを見るのは嫌です。WindowsのようにひどくSSDがひどく落ち込んでいる可能性があるという知識で「汗をかきます」 /本気で本格的なメモリースティックとして使うようになる。 (そのメモについては、ページファイルを1GBの統計情報にハードキャップするだけでいいのですか?)

私の意見では、ここで間違っていることがいくつかあります。一般に、ページングファイルのサイズに制限を設けることは強くお勧めできません。 Mark Russinovichは、私が上記でリンクしたビデオでこれを説明しています(私が今までよりもはるかに良い)。

悪いことだけがそれから来ることができます。 6GBを超えるデータをページングファイルに書き出す必要があるのにWindowsで上限を6GBにした場合、Windowsは何をする必要がありますか? が大きな問題です。

Windowsにページングファイルを処理させます。私が強く勧めているのは、ページングファイルをSSDから移動することだけです。 Tom Wijsmanが彼のブログ記事でこれをうまく説明しています あなたのSSDの寿命を最大にする

57
Der Hochstapler

私の場合、メモリ使用量が多いのは、動的メモリ設定をRAMに対して有効にしたHyper-V仮想マシンのためです。

RamMap ツールを使用して根本的な原因を突き止めました。

まず、RamMapで、Driver Lockedが32GBのRAMのうち29GB以上を消費していることに気付きました。それから、私はDriver Lockedによる高いメモリ使用量がHyperV動的メモリを有効にすることによって引き起こされる可能性があることを説明するいくつかの記事を見つけました、そしてそれから私はちょうどそれを確認しました。

1
Dragan Nikolic

スナップを見ると、すべてのプロセスが表示されているわけではなく、表示されているプロセス自体に5.8 GBのメモリが必要です。表示されたスナップからそれはたくさんの不要なバックグラウンドプログラムが実行されていることを示しています。 msconfigを使用すると、不要な起動プログラムを削除し、仮想メモリ(物理メモリの1.5倍)を増やすことができます。

0
tiki

SysinternalのRAMMAPを試すこともできますが、タスクマネージャやリソースマネージャとは異なる方法でメモリ使用量が表示されるため、あまり役に立ちません。

タスクマネージャとリソースモニタはファイルキャッシュとそのサイズを表示しません。これはメモリの「使用中」部分の一部です(「リソースモニタ」を参照)。ファイルキャッシュは、特に何時間もコンピュータを稼働させ続けると、非常に大きなサイズになる可能性があります。ファイルキャッシュとメモリリークの増加の結果として、プログラムメモリ全体の使用量は時間の経過とともに増加します。いくつかのプログラムは単にお粗末なメモリ管理を持っています。

メモリ使用量を最小限に抑える1つの方法は、プロセス数を減らすことです。 (なぜ118のプロセスが実行されているのですか?なぜExplorer.exeの複数のインスタンスが実行されているのですか?)

定期的にメモリ使用量を減らし、定期的にファイルキャッシュを縮小するのに役立つプログラムがあります。 (PcWinTechのCLEANMEM)この方法でメモリ使用量を減らすと、Windowsがメモリからスワップファイル(SSD上)にデータを書き込む必要性も少なくなり、さらにはなくなります。だから、それはあなたのSSDの寿命を延ばします。メモリ使用量を減らすと、より多くの "スタンバイ"メモリが使用可能になり、Windowsがスタンバイメモリにさらに多くのファイルをプリロードできるようになり、システムの速度が上がります。

0
Willy2

RAMMapは、C:\Windows\SoftwareDistribution\DataStore\DataStore.edbでマップされたファイルが私の貴重な4 GbのRAMを400 Mb浪費していることを示しました。

さらにWindows Updateは、その巨大なファイルを更新する過程でシステムを常に減速していました。

これは多くのローエンドPCに共通の問題かもしれません。

次に PC Bootsが巨大なdatastore.edbファイルを書き込み、コンピュータの速度を落とします

0
Vadzim