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


62

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

メモリリークなどが発生している必要があります-12 GBのメモリを75%使用していますが、タスクマネージャーのプロセスのメモリ使用量のリストが追加されていません(はい、「すべてのユーザーからのプロセスを表示」がチェックされています) )。

この「ファントム」メモリ使用量は、システムが稼働している時間に関連して増加するようです。合計118のプロセスがあることを示しています。トップ5以外は、すべて50 MB未満です。

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

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

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

リソースモニターの印刷

注意:

  1. 私のメインOSドライブはSSDなので、システムでSuperFetchが無効になっています。
  2. そして私は、いわば、未使用のラムが「浪費された」ラムであるという原則を理解しています。ただし、メモリ使用量がピークキャパシティにほぼ使用されているのを見ると、それ以降のプログラムの実行/読み込みが(私自身の懸念から)停止され、多くのタスクを終了するタスクに送られます(メモリ使用量の減少にはほとんど影響がありませんが、少なくとも目立って短時間で)。
  3. メモリがいっぱいになると、SSDの1GBページファイルが設定した6GBの制限まで拡大するのを見るのが嫌いです。 /たゆみなく本格的なメモリスティックとして使用します。(そのメモでは、ページファイルを静的1GBにハードキャップするだけですか?)

4
ただの補足:使用済みRAMはそれ自体悪いことではありません。物事の巧妙なキャッシングは、しばしば物事を高速化します。「omg、programm xyzの起動が非常に遅いので、RAMから他のものを捨てなければならないため、かろうじてそれをとることができます」などの問題がない場合は、まったく問題ない可能性があります。
アキラ


ありがとう、しかし私のシステム(メインSSD OSドライブ)でSuperFetchが無効になっているので、質問は異なります。元の質問を更新しています。
Coldblackice

@Coldblackice 1つの(受け入れられない)答えが役に立たないからといって、それが同じ質問ではないというわけではありません。他の質問のOPは、SuperFetchの変更は役に立たないと言っていました。:)
Ƭᴇcʜιᴇ007

確かに、この場合は正しい答えではなく、別の質問が必要になります。これを反映して質問が更新されました。
Coldblackice

回答:


58

通常、RamMapなどのツールを使用して、メモリを使い果たしているものについてより良い洞察を得ることができます。

ここに画像の説明を入力してください拡大するにはクリックしてください

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

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

さらに詳しい情報


また、あなたの質問からいくつかの追加のポイントを取り上げたいと思いました。

ただし、メモリ使用量がピークキャパシティにほぼ使用されているのを見ると、それ以降のプログラムの実行/読み込みが(私自身の懸念から)停止され、多くのタスクを終了するタスクに送られます(メモリ使用量の減少にはほとんど影響がありませんが、少なくとも目立って短時間で)。

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

おそらく、あなたはあなたの練習に間違ったインジケーターを使用しているかもしれません。Commit ChargeProcess Explorerの用語)に注目してください。

ここに画像の説明を入力してください

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

次のトピックに進みます。

メモリがいっぱいになると、SSDの1GBページファイルが設定した6GBの制限まで拡大するのを見るのが嫌いです。 /たゆみなく本格的なメモリスティックとして使用します。(そのメモで、ページファイルをstatci 1GBにハードキャップするだけですか?)

私の意見では、ここでいくつか間違っていることがあります。一般に、ページングファイルのサイズに制限を設定することは強く推奨されるべきです。マーク・ルシノビッチは、これを私が上でリンクしたビデオで説明している(私がこれまでできたよりずっと良い)。

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

Windowsにページングファイルを処理させます。私が強くお勧めする唯一のことは、ページングファイルをSSDから移動することです。Tom Wijsmanはこれをブログ記事「SSDの寿命を最大化する」で非常に説明しています。これを読むことをお勧めします。


1
ああ、なるほど。はい、「ファントム」メモリ使用量は、マップされたファイルのカテゴリ(具体的には、このスタンバイ列)から来ているようです。したがって、タスクマネージャーは、これらのファイルがマップされていることを報告せず、メモリが使用されていることだけを報告しますか?
Coldblackice

2
ヘルプと補遺をありがとう。ページファイルとSSDについてのメモについては、まったく正反対のことを聞いたことがあります(そのため、なぜそうなっているのでしょうか)。絶対に「正しい」とは言いませんが、SSDの速度の利点のために、SSDでページファイルを読むのは最高です。また、SSDの寿命を低下させることに関しては、ページファイルが制限されている限り、それは無視できると聞いています。
Coldblackice

1
Windowsで管理できるようにする-Windowsは、ページファイルを最大18GBまで拡張できるようにしたいと考えています!残念ながら、SSDにページング用のスペースを確保する余裕はありません。私は、12GBのメモリはWindowsで動作するのに十分すぎると推測していましたが、奇妙なことに、Windowsは利用可能な限り多くのメモリをすぐに丸toみし、手に入れることができるものをすべてキャッシュしているようです:)したがって、必要なページファイルをどれだけ大きくしても、メモリにマップするのに十分なファイルを見つけて、ページファイル全体をすぐに埋めることができるのではないかと心配しています。
Coldblackice

1
@Coldblackice:すみません、納得できませんでした。これから1つだけを取り除いてください。Windowsメモリ管理を適切に理解している人はほとんどいません。それでも、多くの人がすぐに推奨事項を提供します(明らかに、私も含まれています)。ページングファイルのサイズを制限することが有用な場合、なぜデフォルトではないのか、自問してください。また、メモリマップファイルは、ファイル(メモリにマップされたファイル)に既に存在するため、ページングファイルにフラッシュされることはほとんどありません。したがって、この点に関するあなたの恐れは、おそらく見当違いです。
デアホッホシュプラーラ

1
@Oliver Salzburg、心に留めておくべきことの1つは、Windows 7はSSDではなく錆を回すように設計されており、12ではなく1〜4 GBのRAMであるということです。すべてに当てはまるデフォルトは適用されず、解決策は、誰かが問題をより深く理解したいときに、それについて考えず、それらのデフォルトに触れないことを主張し続けることではありません。これは初心者にとっては問題ありませんが、誰にとってもそうではありません。
SilverbackNet

2

私の場合、メモリ使用量が多い理由は、RAMのダイナミックメモリ設定を有効にしたhyper-v仮想マシンでした。

RamMapツールは根本原因の特定に役立ちました。

まず、RamMapで、Driver Lockedが32 GBのRAMのうち29 GB以上を消費していることに気付きました。次に、HyperV Dynamic Memoryが有効になっているとDriver Lockedの高いメモリ使用量が発生する可能性があることを説明した記事を見つけました。


0

スナップがすべてのプロセスを表示しておらず、表示されているプロセス自体が5.8 GBのメモリを使用していることがわかる場合。示されているスナップショットから、多くの不必要なバックグラウンドプログラムが実行されていることがわかります。msconfigを使用すると、不要なスタートアッププログラムが削除され、仮想メモリも増加します(物理メモリの1.5倍)。


仮想メモリをどのように増やしますか?そして、ファクター1.5の背後にある理由は何ですか?
デアホッホシュプラーラ

(ページファイルのサイズを増やすことによって)仮想メモリを増やすことは有益ですが、多くのページングにつながるだけで、マシンの速度が低下します。不要なプログラムがすべて実行されないようにした場合は、RAMを増設するのが最善です。
フラン

仮想メモリを増やすには、次のパスに従います。マイコンピュータのプロパティに移動し、[システムの詳細設定]を選択し、[詳細設定]タブに移動します。 [変更]-> [カスタムサイズの選択]を選択して、最小値を与えます。および最大 サイズ......仮想メモリを物理メモリの最大1.5倍に増やすことをお勧めします(例:4GBのRAMがある場合、最大6GBの仮想メモリを割り当てることができます)。しかし、FRANの提案も正しいです。不要なバックグラウンドアプリケーションを最小限に抑えるようにしてください。
ティキ

それで、生の全体的なパフォーマンスの観点から、ページファイルを増減する方が全体的に良いことが証明されていますか?1.5xは本当に必要ですか?
Coldblackice

0

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

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

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

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


1
このソフトウェアと提携していますか?最後の段落は、マーケティングが私に語りかけているように聞こえます。2つの古い投稿でも同じことを推奨しているようです。
アルジャン

1
はい、プログラムの改善のためにプログラムの作成者を支援しました。しかし、プログラムは無料であるため、プログラムを宣伝する理由はありません。
ウィリー2

0

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

さらに、Windows Updateは、その巨大なファイルの更新中にシステムの速度を常に低下させていました。

これは、多くのローエンドPCに共通の問題です。

PC Bootsが巨大なdatastore.edbファイルを書き込み、可能な解決のためにコンピューターを遅くするを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.