Explorer 文件复制期间的 IO 模式

Explorer 文件复制期间的 IO 模式

在两个 USB HDD 之间复制几个大文件(> 2GB)会在 Process Explorer 中显示下面的 I/O 模式。

目标驱动器上的写入缓存已禁用。我原本以为 I/O 会高速运行,直到设备的内部缓存填满,此时它会在传输的剩余部分减慢速度。

相反,我们看到 I/O 出现高峰,然后出现下降趋势,最后完全下降,几秒钟后才恢复。HDD 活动指示灯一直亮着。

这是怎么回事?为什么会完全停顿?我推测这是在驱动器的内部缓存已满时发生的,但它似乎会在短时间内拒绝任何进一步的传输,然后恢复全速(表明缓存可能为空)。

源驱动器是通过 USB 连接的 Seagate 500GB SATA,目标驱动器是也通过 USB 连接的 2TB WD SATA。

进程资源管理器屏幕截图

答案1

这些看起来都是很长的停顿。如果不查看 Procmon,就只能进行猜测。

您应该使用 Procmon,因为无法知道发生了什么。任务管理器只能告诉您症状。我们需要的是内核调用,尤其是 cacheman 调用。

就像您自己说的那样,我最初的猜测也是当 Windows 在文件末尾进行缓存刷新调用时。

使用 Procmon,您通常可以看到刷新调用。如果您从系统进程记录事件,则可以看到文件系统驱动程序进行了 FlushBuffers 调用。

相关内容