我正在寻找测量完成向NTFS驱动程序发出的文件操作(打开文件closures文件删除文件,写入,读取等)以及能够logging的时间的可能性。 我不能改变应用程序来测量应用程序内的时间。 我感兴趣的是在发出呼叫和返回应用程序执行之间需要多less时间。
应用程序不断写入放置在iSCSI存储上的NTFS卷。 它也经常删除最旧的文件。 文件大小在100到200 MB之间。 卷上总是有大约10%的可用空间。 在某些时候,应用程序无法以正常的速度写入数据,所以它开始在内存中缓冲。 然后发生什么事情,缓冲区开始清空,一切都恢复正常。
我testing了物理卷和逻辑卷的I / O操作 – “停机”期间没有看到exception情况,
现在我想知道问题是在应用程序中还是在OS的某个地方。 出于这个原因,我想如果我能够logging所有的文件操作时间,我将能够弄清楚,如果系统比平常花费更多的时间,或者操作速度很快,并且在应用程序内部阻塞。
平台是64位Windows Server 2008R2。 我尝试了sysinternals进程监视器,但它不logging执行时间。 问题出现可能需要几个小时。
你能build议这个工作的正确工具?
雇用某人为文件系统编写单片或微型filter驱动程序。 您将能够拦截来自特定应用感兴趣的所有呼叫,并将其跟踪到NTFS或任何其他FS驾驶员入口点。 OSR有一些数据拦截(?)工具包或其他,也可以来得方便。