web-dev-qa-db-ja.com

Windows 8 64ビットは4+ Gbが空いている間、メモリが少ないと言います

私はWindows8.1 64ビット、8GbRAMを持っています。

タスクマネージャーに49%のRAMが使用されていると表示されますが、「Windowsのメモリが不足しているため、アプリケーションを閉じることをお勧めします」などのメッセージが表示されます。現在アクティブではないが、他のプロセスよりも多くのメモリを使用するアプリケーションについて常に述べています(Firefoxが起動している場合はFirefox、それ以外の場合はSkypeです)。

だから私の質問は:しきい値を設定する方法またはWindowsを強制する方法レポートしないメモリ不足について?

注:70%以上の空きがある場合でも、メモリ不足について報告します。実行中のアプリケーションの数は増えません。

注2:新しいアプリを起動しても発生しません。 Windowsにはメモリチェッカーがあり、スワップオフ時に定期的にそのメッセージがポップアップするようです。アクティブなアプリ(ゲームまたはブラウザー)を最小限に抑え、その奇妙なメッセージを表示します。

6
arheops

仮想メモリが不足しています。これは、十分な空きRAMがある場合でも発生する可能性があります。

小切手がたくさん残っていて、銀行にたくさんのお金があっても、お金を使うことができないようなものです。すでに書いた小切手をカバーするのに十分なお金を持っている必要があります。そうしないと、すべての小切手が一度に現金化された場合、大惨事のリスクを冒さずにこれ以上書くことはできません。

簡単な解決策は、ページングファイルを拡大することです。

ページングファイルは、Windowsが借りることができるクレジットラインのようなものです。すべての小切手が一度に現金化された場合にページングファイルから借用できることを知っているので、小切手を書き続けることができます。実際にはページングファイルを使用しない可能性がありますが、約束を守るために必要なだけです。

たとえば、4GBのRAMがあるとします。 4つのアプリケーションが起動し、最大1GBのRAM(予約)が必要になる可能性があることをOSに通知します。OSは「正常」と表示し、4つのアプリケーションすべてが起動します(ご希望ですか?)それらを実行させないのですか?!)

合計1GBのRAMを使用しているとします。次に、別のアプリケーションが起動して1GBを要求します。OSは何ができますか?そのアプリケーションに「はい」と表示された場合、すべてのアプリケーションが要求したすべてのメモリを突然使用するという非常にまれなイベントですか?OSには5 GBが使用できず、すでに行った約束を取り消すことはできません。

もちろん、ページファイルを使用すると、めったに使用されないページをディスクに書き込んで、すべての約束を守ることができます。したがって、3GBが無料であっても、別のアプリケーションを実行できるようにするにはページファイルが必要です。

大きなページングファイルを使用すると、実際のワーキングセットがRAMに収まる限り、Windowsでアプリケーションを実行できます。ページングファイルがまったくない場合、Windowsは、すでに行ったコミットメントに基づいて使用できる可能性のあるすべてをRAMに収めることができない限り、アプリケーションの実行を許可できません。つまり、たとえば、 1GBファイルの単純なプライベートで書き込み可能なマッピングにより、1GBのRAMは本質的に無駄になります。これは、アプリケーションがそのファイルのすべてのバイトに書き込む可能性があるため、1GBのRAM安全に破棄できるページのみを含めることができます。

ちなみに、Linuxでは、オペレーティングシステムがバッキングストアをオーバーコミットできます。これの欠点は、OSが守れない約束をした場合、プロセスを強制的に強制終了する必要がある可能性があることです。これが、Linuxには " OOM kiler "があり、Windowsにはない理由です。ほとんどのLinuxマシンでは overcommit とにかく無効になっています。

15
David Schwartz

以下に説明するように、レジストリをハッキングすることで、メモリ不足のアラートをオフにすることができます。

ただし、レジストリを変更するとWindowsが不安定になる可能性があるため、最初にバックアップを処理し、問題が発生した場合に戻ることができるシステムの復元ポイントを作成することをお勧めします。私はこのハックについて個人的な経験はありません。

Regeditを開始し、このキーに自分を配置します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules

(バックアップ用に)エクスポートしてから、次のサブキーを削除します。

{45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}
{5EE64AFB-398D-4edb-AF71-3B830219ABF7}
{C0F51D84-11B9-4e74-B083-99F11BA2DB0A}

ここで再起動します。

これらのレジストリキーを削除する権限がない場合は、記事を参照してください
Windows 7でレジストリキーの所有権を取得します

警告なしにメモリが不足すると、事前の通知なしにWindowsがクラッシュしたり、プログラムが正常に動作しなくなったりする可能性があることに注意してください。

また、このアドバイスはWindows 7でも機能しましたが、Windows8.1では証明されませんでした。

ソース

2
harrymc