メモリをキャッシュする際にWindows 7の攻撃性を低くするにはどうすればよいですか?


16

私は最近、マシン上のWindows 7がメモリ不足を訴えており、いくつかのプログラムを終了する必要があることを指摘しました。それは通常、メモリリークがあり、非常に大きくなった実行中のプログラムを指します。ただし、通常、これらのプログラムは20MBのRAM使用量で開始し、プログラムを実行してから12〜24時間以内に最大で200MBのRAM使用量まで増加します。これらのプログラムを同時に3つ以上実行することはないため、実行中のプログラムで見たRAM使用量は最大600 MBです。

4GBのRAMを搭載したマシンでWindows 7 x64を実行しています。最初は実際にこれを忘れて、Windowsが苦情を言ったときにプログラムを再起動するだけでしたが、今では、Windowsが600MBのRAM(OS自体が使用するメモリを含めても2GB未満)を使用していると私に不平を言っているという事実は奇妙に見えました。そのため、システムプロセスウィンドウを開いて、リストされているプロセスとシステムプロセスから合計メモリ使用量を確認しました。合計で700MBを超えたため、まだ混乱していました。次に、リソースモニターに移動し、[メモリ]タブを開きました。そこで私は答えを見つけたと思います。実際に使用しているのは、RAMの33%だけだということです。ただし、物理メモリリソース割り当てバーでは、変更済みセクションは最大2.3GB、スタンバイセクションは最大540MB、空きセクションは20MB未満、キャッシュメモリは2にリストされていました。8GBおよび利用可能なメモリは550MBと表示されました。(もちろん、これらの値は、これを書いているときに常に変化しているため、わずかに丸められています。)

したがって、明らかにWindows 7は私よりも多くのメモリを使用しています。過去のある時点で、インストールされたWindowsサービスメニューに変更を加えましたが、メディア共有、Telnetクライアントの有効化、インターネットの削除をしたくないため、特定のホスティングサービスを無効にするだけでした。エクスプローラー、しかしそれは私のせいかもしれません。Windowsでこれを行わないようにする方法や、少なくともキャッシュをあまり積極的にしないようにする方法はありますか?これらの「メモリ不足」通知を停止しますか?


2
OPは問題を誤解しています。彼は、バックアップされた仮想メモリが不足しています。物理的記憶に関する彼の分析はすべて無関係です。十分な空き物理メモリを使用できますが、空きバックアップ仮想メモリが不十分であり、ポップアップメモリ​​警告は、物理メモリではなく、バックアップ仮想メモリが不足していることに関する警告です。(ただし、ドライバーからの物理メモリのリークは間接的に問題を引き起こす可能性があります。)
デイビッドシュワルツ14

「OPは問題を誤解しています。」いくつかの回答者も同様です。:(
ジェイミーハンラハン

回答:


10

スタンバイメモリは問題ではなく、「空き」と見なされ、要求に応じて再割り当てされます。プログラムで最近使用されたメモリが含まれているだけですが、現在は解放されています。別のプログラムが「空き」よりも多くのメモリを要求した場合、システムはスタンバイセットからシームレスに割り当てる必要があります(「スタンバイ」メモリは実際には使用されていないため)。

過度に変更されたメモリは、簡単に再割り当てできないため、問題です。こちらをご覧ください。これは、メモリリーク(最初の段落に対応しているようです-どのプログラムがリークしていますか)またはページファイルが小さすぎる(ページファイルのサイズが固定されているか、無効になっています)ために発生する可能性があります。


3
CJMの回答に対するコメントで述べたように、疑わしい(一部のインディーPCゲーム)アプリケーションをすべて閉じ、タスクマネージャー、リソースモニター、AVG、Chromeのみを実行していますが、1.6GBの修正されたメモリが残っています。リンクした記事のプロファイルに一致するコンピューターを一度に何日も放置します。ただし、そのWebページに関する注意事項は、コミットサイズが大きいプロセスを探すことでした。現在、それはnSvcAppFlt.exeからのプロセスです。ワーキングセットのサイズは30MBのみですが、コミットサイズは13.5GBです。何が得られますか?
GRG-N-SOX

2
それがあなたの記憶を漏らしているプログラムです。social.answers.microsoft.com/Forums/en-US/w7performance/thread/…も参照してください。それを削除すると、すべてがうまくいくはずです。
akid

どうもありがとうございました。実際、それは一種の気の利いたものです。したがって、基本的にRAMが使い果たされていることに気づいた場合、リソースモニターに移動して、変更されたメモリセクションが巨大かどうか、どのプロセスのコミットサイズが大きいか、メモリリークプログラムを見つけることができますか?間違いなくWindows用の素晴らしい診断ツールです。
grg-n-sox

Nvidiaファイアウォールソフトウェアを無効にするか、アップグレードします。
デビッドシュワルツ

最後の段落で「あなた」になるはずの3つの「あなた」がいます。(編集を提案することはできませんが、マイナーすぎます。)
Shadow The Burning Wizard

4

SuperFetchプリエンプティブキャッシングは問題ではありません。Windows 7は、次に必要になると思われるものをプリエンプティブにキャッシュするために、できるだけ多くのスペアメモリを使用します。うまくいけば、時間を少し節約でき、アプリケーションがより速く、より反応的に見えます。

推測が間違っていて、他のデータが必要な場合、Superfetchは保持しているメモリの一部を解放し、本当に必要なデータをロードできるようにします。参照:http : //arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage-scaremongering.ars

「メモリ不足」の問題が発生している場合、SuperFetchが原因ではありません。アプリケーションが要求した場合に必要なだけメモリを放棄するためです。使用可能なメモリ(550MB)がスーパーフェッチで使用されているため、明らかにメモリが不足していません。すべてのRAMを使い果たした場合でも、マシンは仮想メモリにフォールバックしますが、パフォーマンスヒットのため、これを回避したいでしょう...

したがって、「メモリ不足」の問題は他の場所の問題が原因であることが示唆されています-おそらく、リークしているアプリの1つが他のタイプのリソースを消費しています(放棄していません)...

どちらにしても、SuperFetchをいじるよりも、バグのあるアプリケーションに取り組むことで解決策が見つかる可能性が高くなります...


メモリのスタンバイセクションはキャッシュメモリの一部であることがわかりますが、プログラムが問題であることを真剣に疑わなければなりません。すべてを閉じたので、AVG、タスクマネージャー、リソースモニター、および4つのタブがあるChromeの単一ウィンドウのみを実行しています。使用可能なメモリは1417MBで1042MBしかありませんが、タスクマネージャが使用済みメモリとしてカウントし、メモリ不足を通知している修正済みメモリの巨大なチャンクがまだ1633MBを占めています。変更されたメモリの量を減らす方法、またはメモリ不足の通知をオフにする方法はありますか?
GRG-N-SOX

0

メモリリークのあるプログラムが原因で問題が発生しているとは思わないため、代わりにページファイルサイズを大きくすることもできます。

ページファイルはメインメモリではありませんが、オペレーティングシステムがより多くのデータをハードドライブにスワップできるようにし、できれば「メモリ不足」メッセージを停止します。他の唯一のオプションは、13GBの巨大なフットプリントを持つプロセスに関連付けられたプログラムを削除することですが、ハイエンドのPCゲームまたは3Dレンダリングソフトウェアでない限り、どのプログラムがそのメモリをページングする必要があるのか​​分かりません。


0

私の経験から、スタンバイメモリのクリープは本当の問題です。たとえば、長い記事に対してローリングウィンドウモードでSnagitを実行すると、スタンバイメモリのみで実行しているときにキャプチャされなかった記事の部分があります。いずれにせよ、私のコンピューターはスタンバイメモリで動作が遅いことがわかりました。

この問題を解決するために、無料のGlary Utilitiesのメモリオプティマイザーを使用します。私のコンピューターには6 GIGのメモリーがあります。初めて起動したとき、Windowsのリソースモニターによると、約2 GIGの使用中メモリ、2 GIGのスタンバイメモリ、および2 GIGの空きメモリと呼ばれるメモリがあります。半日ほどで、コンピューターを使用しているかどうかに関係なく、Free-Freeメモリーはすべてスタンバイメモリーに変わります。現在、Glary UtilitiesのメモリオプティマイザーをWindowsで起動し、2 GIGのFree-Freeメモリを完全に使用して、コンピューターを無期限に実行し続けることができます。

別のセッションのために座っているたびに、最初にメモリオプティマイザートレイアイコンをダブルクリックして最適化を行います。元の2 GIGのFree-Freeメモリを解放するように要求します。私はより多くを求めることができますが、それは関係なく解放される最大値です。オプティマイザーの完了には約30秒かかりますが、これは再起動に必要な時間よりもはるかに短くなります。それは自動最適化モードを持っていますが、私はそれを機能させる方法を理解することができませんでした。


スタンバイメモリは問題ではありません。
ジェイミーハンラハン

「メモリオプティマイザー」は廃棄する必要があります。スタンバイRAMは、プロセスで最近「使用中」になったRAMです。ワーキングセットの交換のためにこれらのプロセスからプッシュされましたが、「使用中」のときの動作がまだ含まれています。プロセスがそれらのページの1つにあるものを必要とすることが発生した場合、ページをプロセスにすばやく戻すことができます。そのため、スタンバイは「キャッシュ」のカウントの一部と見なされます。ただし、スタンバイは、空きRAMと同様に、他の用途でも「利用可能」です。「メモリオプティマイザー」は、多くのページをスタンバイからフリーに移動しました。つまり、スタンバイキャッシュを
ジェイミーハンラハン

[...] RAMを使用可能にせずに。とにかく「Standby」は常に「Available」だったので!Vista以降では、SuperFetchはは現在、積極的なファイル・キャッシングのためにスタンバイの一部を使用することができますが、ページはまだ必要に応じて他のprocssesで使用するためにrepurposeable。そのため、SuperFetchは「使用可能」からページを削除しません。「メモリマネージャ」を取り除くと、システムのパフォーマンスが低下し、不要なディスクI / Oが発生します。
ジェイミーハンラハン

-1

この問題を解決するために

start-run-msconfigに移動し、「Windowsドライバーファンデーション」からサービスと削除を選択します。[OK]をクリックして、マシンを再起動します。

要確認-上記の手順のみがこの問題を解決します。services.mscから無効にした場合、OSの起動時にまだアクティブであり、メモリをブロックします。

これを確認するには、ツールを使用します


WDFサービスを無効にすると、そのドライバーモデルに依存するすべてのデバイスが無効になります。それは悪い考えです。
ジェイミーハンラハン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.