
Windows パフォーマンス モニター (perfmon) を使用して、マシンのディスク アクティビティを監視しています。コレクター セット LogicalDisk > % Disk Time および LogicalDisk > Current Disk Queue Length に注目しています。負荷の高いアプリケーションをいくつか実行したところ、最初の読み込み時に、予想どおりこれらの数値が急上昇しました。ただし、結果を再現できませんでした。これは、Windows が未使用の RAM にファイルをキャッシュするためです。そのため、2 回目にディスク使用量を監視しようとしたときに、Windows がすべてをキャッシュしてしまい、ディスク アクティビティが表示されませんでした。
私の質問は、これらの「仮想」IO 要求を監視する方法があるかどうかです。スマート キャッシュをオフにすると読み込み時間が大幅に長くなるため、オフにしたくないのですが、Windows が情報をどこに保存しているかに関係なく、IO 情報を取得し続けたいだけです。(RAM 上またはディスク上)
答え1
パフォーマンス モニターからキャッシュについてかなり多くの情報を監視できます。
上部の緑色の「+」を使用して興味のあるものを追加し、「ローカル コンピューター」を選択してから、「キャッシュ」オプションの下で必要なものまでドリルダウンします。
(当然ですが) Windows はキャッシュからのメモリを HDD からのメモリとは異なる方法で管理するため、オプションはハード ドライブからの読み取りとまったく同じ方法で測定されるわけではありません。オプションが実際に何を意味するかについては、この msdn の記事を参照してください。