Windows / NTFS-是否可以测量文件操作的完成时间?


8

我正在寻找一种方法来测量完成发给NTFS驱动程序的文件操作(打开文件,关闭文件,删除文件,写入,读取等)并能够记录它所需的时间。我无法更改应用程序来衡量应用程序内部的时间。我对发出呼叫和返回应用程序执行之间有多少时间感兴趣。

应用程序正在不断写入iSCSI存储上放置的NTFS卷。它还定期删除最旧的文件。文件大小在100到200 MB之间。卷上总是有大约10%的可用空间。在某些时候,应用程序无法以规则的速度写入数据,因此它开始在内存中进行缓冲。然后发生一些事情,缓冲区开始清空,一切恢复正常。

我测试了针对物理和逻辑卷的I / O操作-在“中断”期间没有发现异常

现在,我想找出问题出在应用程序内部还是操作系统中。出于这个原因,我在考虑是否能够记录所有文件操作的时间安排,因此我将能够弄清楚这是系统花费的时间比平时多还是操作速度快以及应用程序内部是否有阻塞。

平台是64位Windows Server 2008R2。我尝试了sysinternals进程监视器,但它没有记录执行时间。问题可能需要几个小时才能出现。

您能为这项工作建议合适的工具吗?


也许您会发现DiskMon有用。
VlastimilOvčáčík17年

Answers:


4

雇用某人为文件系统编写单片或微型过滤器驱动程序。您将能够拦截来自感兴趣的特定应用程序的所有调用,并直接将其跟踪到NTFS或任何其他FS驱动程序入口点。OSR有一些数据拦截(?)套件或其他工具,也可以派上用场。

https://www.osr.com/dmk/


1
感谢您的建议,但这将花费太多时间。令我惊讶的是,大多数工具只专注于事件的实时,短期分析,而很少允许您记录信息。我在系统上找到的唯一可靠的*,就是性能监视器。我的计划是尝试关联多个计数器,以期找到某种模式。*)似乎有效的工具
MariuszZieliński17年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.