非常に高速なRAIDアレイと高速インターネット接続を備えたマシンがあります。しかし、メモリは8GBしかなく、本当にアップロードが完了したらすぐに。
キャッシュを無効にしたり制限したりする方法について何かアイデアはありますか?
(デバイス マネージャーから書き込みキャッシュを無効にしてみました。しかし、それは書き込みキャッシュだけなので、役に立ちませんでした。)
答え1
キャッシュのポイントは、未使用RAM は、アプリケーションがさらに RAM を要求するとすぐに解放されます。したがって、RAM のサイズを制限すると、空き RAM が完全に無駄になってしまうため、サイズを制限することは望ましくありません。
答え2
システム API SetSystemFileCacheSize() を呼び出す必要があります
。こちらにドキュメントがあります:http://msdn.microsoft.com/en-us/library/aa965240.aspx
一部の GUI プログラムではこれが許可されています:http://technet.microsoft.com/ja-jp/sysinternals/bb897561 より
ただし、システム起動時に自動的に実行するには、CLI を使用することをお勧めします。http://www.uwe-sieber.de/ntcacheset_e.html(ページの中央を見てください。2k8 で動作します)
または、SetSystemFileCacheSize()を呼び出すPowerShellスクリプトを書くだけです。
実稼働環境ではキャッシュを無効にすることは強く推奨されません。
仮想マシンではキャッシュ サイズを無効にするのではなく、小さい値に制限することがよくあります。
答え3
当社でも、Windows Server 2008 R2 でこの問題を経験しました。当社の場合、マシンは完全に停止しました。これは Windows のこのサーバー バージョンのバグのようです。VirtualBox で実行されているはるかに小型の Windows 7 マシンでも、Linux でも、同じ状況では発生しなかったからです。
他の人がすでに投稿しているように、APIを使用してキャッシュを一定の制限に設定できますが、次のようなアプリケーションを直接使用することもできます。システムファイルキャッシュサイズの設定またはNT キャッシュ セッター。
欠点は、再起動するたびにキャッシュを設定する必要があることです。これにより、キャッシュ全体を一度にフラッシュすることもできます。
14 GB RAM を搭載した VM のファイル キャッシュを 4 GB に設定したところ、正常に動作しました。また、フラッシュも正常に動作し、タスク マネージャーで直接確認できます。
コマンドラインサンプル:
現在の Windows 設定を表示します。
SetSystemFileCacheSize.exe
ヘルプを表示:
SetSystemFileCacheSize.exe /?
最小サイズを 8 MB、最大サイズを 128 MB に設定します。
SetSystemFileCacheSize.exe 8 128
最小サイズを無効にして、最大サイズを 128 MB に設定します。
SetSystemFileCacheSize.exe off 128
最小サイズと最大サイズを無効にする:
SetSystemFileCacheSize.exe off off
ファイル キャッシュをフラッシュします。
SetSystemFileCacheSize.exe flush
注意: ツールは管理者権限で起動する必要があります。
答え4
ファイル キャッシュを制限するには、ファイル共有パフォーマンスの最大オプションが有効になっていないことを確認し、使用メモリを最小化またはバランスを選択して、ファイル キャッシュのメモリの最小量を指定できます。
現在の構成を確認するには、次の順に進みます: [スタート] -> [コントロール パネル] -> [ネットワーク接続] -> [ローカル エリア接続] -> [全般] タブで [プロパティ] -> [ファイルとプリンターを選択] -> [プロパティ]。[最大化] オプションが選択されている場合は、他のオプションを選択します。