Windows 8 64bit では、4GB 以上の空き容量があるのにメモリ不足と表示される

Windows 8 64bit では、4GB 以上の空き容量があるのにメモリ不足と表示される

私のOSはWindows 8.1 64ビット、RAMは8GBです。

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

私の質問は次のとおりです。しきい値の設定方法またはWindowsを強制する方法報告しないメモリ不足について?

注意: 空き容量が 70% 以上ある場合でも、メモリ不足が報告されます。実行中のアプリケーションの数は計測されません。

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

答え1

在庫が不足していますバーチャルメモリ。空き RAM が十分にある場合でも、この問題が発生する可能性があります。

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

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

ページング ファイルは、Windows が借りることができる信用枠のようなものです。小切手がすべて一度に換金された場合にページング ファイルから借りることができるとわかっているため、Windows は小切手を書き続けることができます。ページング ファイルは実際には使用されない可能性が高いですが、約束を守るために必要になります。

たとえば、RAM が 4GB だとします。4 つのアプリケーションが起動し、OS に最大 1GB の RAM (予約) が必要になる可能性があることを伝えます。OS は「問題ありません」と答え、4 つのアプリケーションすべてが起動します。(実行させないほうがいいでしょうか?!)

たとえば、現在合計 1GB の RAM を使用しているとします。その後、別のアプリケーションが起動し、1GB を要求します。OS は何ができるでしょうか。そのアプリケーションに許可した場合、すべてのアプリケーションが要求したメモリをすべて突然使用するという、非常にまれな事態が発生した場合はどうなるでしょうか。OS には 5GB の空き容量がなく、すでに行った約束を取り消すことはできません。

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

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

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

答え2

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

ただし、レジストリの変更により 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 では機能しましたが、Windows 8.1 では機能しないことが証明されました。

ソース

関連情報