在Windows 2008上复制大文件后长时间“暂停”

我有一个关于在Windows Server 2088(和其他版本)上的文件副本之后暂停的谜团,

将大文件(如vhd)复制到本地连接的USB磁盘时,复制完成后,经常会看到很长的停顿。

举个例子:robocopying vhd文件。 读取/写入的字节数与vhd文件大小相匹配,robocopy显示100%,但暂停了几分钟。 如果我什么都不做,它会继续下去,但是我将不得不等待相当长的一段时间 – 大概和达到100%的时间相同。 robocopy写入的字节数/字节计数器不会更改。

我的第一个想法是,AV必须扫描它,但我正在寻找一台没有安装AV的机器,这种情况正在发生,所以不可能。 没有其他进程显示读/写字节数正在增加。

如果我使用copy命令或xcopy,行为是相同的。

我在其他系统上看过这个,但从来没有find原因。 任何人有什么build议,可能会发生什么?

您正在经历清空本地缓冲区到实际驱动器的过程。 当您将文件复制到速度较慢的介质上时,由于性能原因,操作系统可能会在实际完成之前告诉您该操作已完成。 它实际上跟踪自己的操作(在内存中),除非用于跟踪进度的程序在进程结束时有某种“等待文件被真正写下来”的调用。 这是什么导致等待。

对于一般的Windows文件副本,您可以通过更改USB驱动器的设置来改变这种行为,以平衡安全性能,如下所述: http : //www.pcworld.com/article/254868/safely_remove_usb_drives_just_by_unplugging_them.html

如果你这样做,那么“安全移除”将成为绝对必要的,以避免外部驱动器上的文件系统损坏。 这会将(不可避免的)等待转移到实际移除驱动器的那一刻,还有一个额外的好处是,如果稍后在删除它们之前对复制的文件进行进一步更改,则会节省大量昂贵的I / O,因为这些更改将会直接在本地缓冲区执行。