Windows 10 x64 のメモリ フットプリントを削減 – システムの自動メモリ圧縮を調整できますか?

Windows 10 x64 のメモリ フットプリントを削減 – システムの自動メモリ圧縮を調整できますか?

最近、Windows 7とLinux(Ubuntu/Kali/Redhat)からWindows 10に移行し、仮想OSを多用してきました。

新しい LenovoZ51-70 ラップトップで Windows 10 OS のメモリ フットプリントを削減することが困難で、移行したゲスト OS を実行しようとしていますが、ホスト OS の eventvwr ログに以下のエラーが表示されて失敗しています。

Provider [ Name] Application Error

EventID 1000 [ Qualifiers] 0

Level 2

Task 100

Keywords 0x80000000000000

TimeCreated [ SystemTime] 2016-01-26T10:26:59.000000000Z

EventRecordID 2163

Channel Application

Computer ZeroCool

Security
EventData VirtualBox.exe 5.0.14.5127 569e6712 QtCoreVBox4.dll 4.8.6.0 5565c7c8 c0000005 0000000000023217 1594 01d1582400729aef C:\Program Files\Oracle\VirtualBox\VirtualBox.exe C:\Program Files\Oracle\VirtualBox\QtCoreVBox4.dll 6f631a15-7ad8-4d59-bde5-59a431caf81e

また、Virtual Box の仮想ログは、アプリケーションがロックオンするための使用可能な RAM が不足していることを示しています...ゲストに必要なのは 1600 MB のみで、ラップトップには 4 GB の RAM があり、OS はアプリが 1400 MB を超える RAM を消費することを制限しており、Virtual Box コミュニティからの提案に従って、OS の仮想メモリが大幅に増加しました。

今後数か月間は、別の RAM モジュールにアップグレードする可能性はほとんどありません。この質問は、利用可能なすべての技術フォーラムでかなりの調査を行った後にのみ提起されています。エンタープライズ アプリ開発者として、私は宿題をこなしてきました。

このフォーラムで私が求めているのは、メモリを消費する役に立たない OS サービスのリストを提供することだけです。必要なら、レジストリや DLL をハッキングしても構いません...

または、Windows 10 OSのメモリ使用量を減らす手順

いくつかの技術フォーラムを経て、レジストリ キーとページ ファイル サイズを変更しました。

レジストリの更新 * スタート > regedit (スタートをクリックした後、regedit と入力) * HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Session Manager > Memory Management * ClearPageFileAtShutDown を右クリック > 変更 > 値のデータを 1 に変更します。 * 再起動します (今すぐ、または以下のコントロール パネルの更新後に)

コントロールパネルの更新 * コントロールパネル > システムとセキュリティ > システム > システムの詳細設定 > パフォーマンス > 設定 > 仮想メモリ * 「すべてのドライブのページングファイルサイズを自動的に管理する」のチェックを外す * 「システム管理サイズ」ボタンをチェックする * 再起動

奇妙なことに、Windows 10 64 ビットのメモリ消費量は依然として 3GB のままです。

Windows リソース マネージャーのスクリーンショット Windows タスクマネージャーのスクリーンショット バーチャルボックスのエラーメッセージ バーチャルボックスのエラースクリーンショット

Windows 10 では、メモリ マネージャーに圧縮ストアと呼ばれる新しい概念が追加されました。これは、圧縮されたページのメモリ内コレクションです。つまり、メモリ マネージャーはメモリの逼迫を感じると、未使用のページをディスクに書き込むのではなく圧縮します。これにより、プロセスごとに使用されるメモリの量が削減され、Windows 10 は一度に物理メモリ内に保持できるアプリケーションを増やすことができます。また、これにより、Windows 10 全体の応答性が向上します。圧縮ストアは、システム プロセスのワーキング セット内にあります。システム プロセスはメモリ内にストアを保持するため、メモリが他のプロセスに利用可能になると、そのワーキング セットが大きくなります。これはタスク マネージャーで確認でき、システム プロセスが以前のリリースよりも多くのメモリを消費しているように見えるのはこのためです。

要件に合わせて圧縮ストアを微調整する方法はありますか?

答え1

WindowsがメモリページをRAMからページファイルにプッシュするように、システムにメモリ負荷をさらに加えることもできます。システム内部 testlimitプログラムでは大量のメモリを割り当てることができます(ルシノビッチのブログ記事に概説されているように) により、メモリ マネージャーがデータをページ ファイルにプッシュするように (うまくいけば) 説得できるはずです。

次のコマンドを実行し、しばらく実行させてから (タスク マネージャーで RAM を監視します)、終了します。

testlimit64 -m 100

他のプロセスの物理的なコミット チャージ (つまり、実際の RAM 使用量) が減少し、testlimit がすべてを占有していることがわかります。testlimit が終了すると、開始時よりも多くの RAM が使用可能になります。

重要な注意点: これにより、VM を起動できるようになりますが、次に使用するときには使用できる物理 RAM が少なくなり、ページ ファイルから読み込む必要があるため、コンピューターで実行されている他のすべてのプログラムの速度も低下します。

(これは実際の修正ではなく回避策です。すでに述べたように、RAM を増やすのが最善の解決策です)。

答え2

投稿されたスクリーンショットでは、「firefox.exe」が 200 MB を占めているのがわかります。おそらく手動で Firefox を起動したのでしょう。このスクリーンショットが役に立たないのはそのためです。起動する前に、起動直後にスクリーンショットを撮ってください。どれでもアプリケーション。こうすることで、すべてのバックグラウンド プログラムが起動した後、使用可能な RAM の量を確認できます。

RAM が不足していて、RAM を追加したくない場合は、ページ ファイルをオンにする必要があります。これは RAM の拡張ですが、ハード ドライブ上に配置されます。この RAM のパフォーマンスは実際の RAM に比べて低く、アプリケーションの速度が低下しますが、VirtualBox を起動することはできます。

VirtualBox は明示的に実際の RAM を必要とし、スワップを使用したくないと思います。そのため、十分な物理 RAM がある間に OS を起動したらすぐに VirtualBox を起動する必要があり、VirtualBox の起動後に十分な物理 RAM がない場合、他のアプリケーションがスワップを使用します。

起動後すぐにVirtualBoxを起動できない場合は、Sysinternals Autorunsを以下からダウンロードしてください。ここここで、システムの起動時およびユーザーのログオン時に実行されるプログラムとサービスのオン/オフを切り替えることができます。ただし、システム操作にとって重要なものを無効にすると、Windows が起動しなくなるので注意してください。

具体的に何を無効にするかは多くの要因に依存し、ここで投稿するには複雑すぎます。

まず、Skype、Mozilla メンテナンス サービス、Google 更新サービス、Adobe 更新サービス、いわゆる「システム チューニング ユーティリティ」などの自動起動を無効にすることができます。基本的に、自分でインストールしたすべてのプログラムを無効にして、自動起動するようにしても安全です。システム サービスについてはここでは説明できませんが、注意して、何をしているのかを知っておく必要があります。

関連情報