Windows Vista のディスク キャッシュを無効/サイズ変更して空き RAM を増やす

Windows Vista のディスク キャッシュを無効/サイズ変更して空き RAM を増やす

ディスクが遅く、スワップのないシステム (この方がかなり高速) を実行しているため、キャッシュ サイズを小さくしたいと考えています。x86 Vista と 3 GB RAM を使用しています。問題は、Windows がディスク キャッシュに約 1 GB RAM を消費し (タスク マネージャーの [物理メモリ] -> [キャッシュ済み] で表示)、アプリケーションに使用できるのは 2 GB しかないことです。Windows がメモリ不足だと判断するたびに、非常に迷惑なポップアップが表示され、メモリが使用されるとアプリケーションがクラッシュします。しかし、キャッシュにはまだ 1 GB が残っています。

AnalogX Cache Booster を試しましたが、何も変わりませんでした。メモリ使用量は同じままで、警告ポップアップも同じレベルです。

答え1

私はスワップレスシステムを持っています

私も以前は同じように考えていました。その後、MS Windowsではこれが悪いアイデアと実際に傷つくパフォーマンス。

WindowsはRAMをハードディスクの最適化レイヤーとして捉えています。RAMをスワップアウトするまで待ってからディスクにページング/スワップするわけではありません。代わりに、WindowsはRAMに置いたものはすべてすでにページング/スワップされます。

こうすることで、Windows が他の用途で RAM を必要とするときに、それを使用することができます。この戦略が機能するのは、コンピュータの負荷がすでに高く、RAM が不足している時点ではなく、アプリケーションの読み込みが若干遅くなり、必要のないページングが行われる可能性はありますが、コンピュータの負荷が低い時点で (低速の) ディスク書き込みが行われるためです。

もちろん、ページング ファイルを完全に削除すれば、両方の長所を得られると考える傾向があるかもしれません。しかし、Windows には、先ほど説明したパフォーマンス モデルを前提として最適化されたコードが多数あります。RAM と同程度のスワップ領域を少なくとも確保しておく方が、実際にはより効果的です。

答え2

デフォルトでは、Vista(およびそれ以降)x86では2GBしか許可されません。バーチャル各プロセスのメモリ。1 つのアプリケーションでさらに 3GB など必要な場合は、次のように増やすことができます。

bcdedit /set IncreaseUserVa 3072

ただし、これは「大規模アドレス認識」フラグでリンクされた実行可能ファイルに対してのみ機能します。他の exe を実行するプロセスは、引き続き 2 GB に制限されます。

実際の RAM は、アプリケーションとシステムの両方の必要に応じて割り当てられます。

これはあなたの問題ではないようですので、メモリの使用を最適化するには、まずWindows Vista で SuperFetch を無効にする:

Windows Vista の SuperFetch サービスは、最も頻繁に使用するアプリケーションをシステムのメモリにプリロードします。これにより、それらのアプリケーションの起動が大幅に高速化されますが、システム調整者やゲーマーにとっては望ましくない動作となる可能性があります。

次に、ディスクキャッシュのサイズを制御するために、アナログXキャッシュブースターハードディスクのキャッシュを調整できると言われている無料ツールですが (自分では試したことはありません)、以下の情報から判断すると、役立つかどうかはわかりません。

記載の通りWindows Vista メモリ調整ガイドディスク キャッシュ パラメータはレジストリに存在します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management

重要なパラメータは次のとおりです:

ページングエグゼクティブを無効にする非アクティブなカーネル モード ドライバーとシステム コードを RAM から解放し、ページ ファイルにページングする方法を制御します。残念ながら、ページ ファイルがないため、システム コードはスワップ アウトされません。

ラージシステムキャッシュファイル システム キャッシュのサイズを次のように制御します。

  • 0 (デフォルト) 標準サイズのファイルシステムキャッシュが割り当てられます (10MB 未満の RAM)
  • 1 では、大容量のファイル システム キャッシュ (合計 RAM 容量から 4 MB を引いた量まで) の使用が可能になります。

この値がゼロの場合、ディスク キャッシュはすでに最小サイズになっています。パフォーマンスに満足できない場合は、ハードウェア (RAM の増設またはハードディスクの高速化) に投資する必要があります。RAM を 3 GB から 4 GB に増やしても、64 ビット バージョンの Windows に移行しない限り、(1 GB - ビデオ メモリ) しか増えません。

答え3

Windows がメモリ不足だと判断するたびに非常に迷惑なポップアップが表示され、メモリが使用されるとアプリがクラッシュします。

このポップアップは RAM や Windows のキャッシュとは関係ありません。コミット制限が不足していることを意味します。これは、プロセスが割り当てることができるプライベート仮想アドレス空間の制限です。

コミット制限を増やすには、次の 3 つの方法があります。1) 一度に実行するものを減らすか、サイズを小さくする。2) RAM を増やす。3) ページファイルのサイズを増やす。これは、コミット制限が単に RAM のサイズと現在のページファイルのサイズを足したものに過ぎないためです。

OS 設計者の意図したとおりにページファイルを有効にすれば、これらのメッセージは表示されず、プログラムがクラッシュすることもなくなります。

そして、CausingUnderflowsEverywhereがコメントで述べたにもかかわらず、プログラムが必要な仮想メモリを割り当てるためにページファイルが必要になる場合があります。利用可能なRAMが十分にあるにもかかわらずページファイルは実際には使用されない可能性があります。理由については、私の回答を参照してください。ここそしてここにリンクの説明を入力してくださいここ。

注: タスク マネージャーによって報告される「キャッシュされた」RAM のほとんどはまだ「使用可能」です。SuperFetch キャッシュは実際には RAM を「使用」しません。「キャッシュ」が問題の原因ではありません。ページファイルの不足が問題の原因です。

関連情報