web-dev-qa-db-ja.com

Windowsディスクの読み取りキャッシュをクリアする方法は?

パフォーマンステストでは、Windowsのディスク読み取りキャッシュをクリアする必要があります。グーグルで試しましたが、再起動や他の手動のもの以外は何も見つかりませんでした。私がやりとりする前に、Windowsのディスク読み取りキャッシュをクリアする方法を誰かが知っているかどうか知りたいのですが。私はWindows 7でテストしていますが、Windows XPソリューションにも興味があります。

13
Sebastiaan M

または、テストで使用されないことがわかっているデータをキャッシュに入力して、テストを実行します。

3
Maximus Minimus

Stack Overflowでも同じ質問をしました

https://stackoverflow.com/questions/478340/clear-file-cache-to-repeat-performance-testing

私はWin XPを使用していましたが、思いついた最善の解決策は次のとおりです。

  1. MemAlloc のコピーをいくつか実行します
  2. それぞれに、大きなメモリのチャンクを数回割り当てます
  3. プロセスエクスプローラーを使用して、システムキャッシュサイズが非常に低いレベルに減少していることを確認します。
  4. MemAllocプログラムを終了します。
7
Stephen Denne

Windowsのより良いビューについてXP Filesystem Cache-try ATM by Tim Murgent -ファイルシステムキャッシュのワーキングセットサイズとスタンバイリストサイズの両方を確認できますWindowsの場合XP-ダウンロードできる古いバージョンのATM 1が必要 ここ V2とV3にはServer 2003が必要なので、 Vista以降。

Cachesetは "Cache WS Min"を削減しますが、実際のデータはスタンバイリストの形式で引き続き存在し、他のデータに置き換えられるまで使用できます。次に、それを別のもので置き換えるには、MemAlloc、Chad Austinによるflushmem、またはWindows Server 2003リソースキットツールのConsume.exeなどのツールを使用します。

3
Robert Collier

私は RAMMap を使用しました。いくつかのタイプの割り当てのメモリを解放する可能性があります。

ファイルキャッシュの内容は[ファイルの概要]タブで確認でき、[空]メニューから[空のスタンバイリスト]を選択すると、このキャッシュがクリアされます。

3
pbies

マシンを再起動します。

1
Joe Koberg

ベストプラクティスは、ベンチマークに使用するすべてのテストファイルが、アレイコントローラーキャッシュ(または、VMゲストでベンチマークを行う場合はWindows OSメモリ)の2倍で、最低1 GBのテストファイルであることを確認することです。これにより、キャッシングが確実に無効になります。ディスクベンチマークには [〜#〜] sqlio [〜#〜] を使用します。付属のドキュメントには豊富な情報があります。

1
Greg Askew

Gregをエコーし​​て、この問題を回避する方法は、使用しているデータセットが使用可能なRAMの量を大幅に超えるようにすることです。大量のコントローラーとディスクベースのキャッシュも含むハードウェアプラットフォームでテストを実行している場合は、それらの量も超えていることを確認する必要があります。これにより、キャッシュのすべてのレイヤーが導入するソフトウェアの最適化よりも、実際のハードウェアパフォーマンスに関連するパフォーマンスが保証されます。

つまり、読み取りキャッシュを使用したいベンチマークを実行する前に、有用なデータの読み取りキャッシュを削除するだけの場合は、読み取りキャッシュメモリのすぐ下にあるサイズの単一ファイルを読み取ることです。それにいくつかのファイル操作を行います。これにより、キャッシュがパージされ、この1つの大きなファイルでいっぱいになります。それを閉じると、キャッシュは効果的にフラッシュされます気になるデータの。トリッキーな部分は、そのファイルがどれほどの大きさである必要があるかを理解することです。最近では、そのサイズが3GBのオーダーになる可能性が非常に高くなっています。その時点で、それを動作させるためにいくつかの1GBのジャンクファイルが必要になる場合があります。

1
sysadmin1138

StackOverflowで自分の質問に投稿した this answer を見てください。

基本的に:ハンドルをCreateFileハンドルなし書き込み共有アクセスしようとすると、エラーが返されても、キャッシュがフラッシュされて無効になります。

お役に立てれば!

0
user541686

ほとんどすべてのオプションは「手動のもの」になると思います。 UNIXでは、各ベンチマークを実行する前にデバイスをアンマウント/再マウントすることはかなり標準的です。 Windowsでコマンドラインツールを使用してデバイスをマウント解除/マウントできるかどうかはわかりませんが、自動化が目的の場合は、そのようなユーティリティを探す価値があります。

0
Geoff Fritz