我的用户目录大小为 58 GB,我正在使用 Windows 恢复将其复制到便携式 USB 备份驱动器Robocopy。
robocopy G:\Users\ E:\Backup\T420\ /MIR /SEC /MT:32 /V /LOG:G:\bak\robocopy.txt
笔记本电脑是 USB 2,备份驱动器是 USB 3。
它现在已经运行了 18 个多小时,这比我预想的要长。
即使 USB 2 速度较慢,也只需大约 8 小时
https://www.wolframalpha.com/input/?i=58+gB+at+2+MB%2Fs
如果我按下Ctrl-C并检查日志以查看发生了什么,然后再次运行该命令,它会花费相同的时间还是会从中断的地方恢复?
假设它可以恢复,那么需要花费多少时间来确定哪些文件需要复制以及从哪里恢复?
编辑:原来,之所以花了这么长时间,是因为一些假的/未完全同步的 OneDrive 文件无法复制,默认值为重试 100 万次。更改重试并等待允许它完成/r:2 /w:5
答案1
如果文件夹包含非常大量的文件,那么确实需要花费很长时间,因为需要频繁访问源和目标的磁盘目录。
此外,USB2 端口上的 USB3 磁盘将以 USB2 的速度工作。在进行初始握手时,USB3 磁盘将自行适应端口及其协议。
您使用的/MT:32
是多线程,因此告诉 robocopy 一次复制 32 个文件。这将导致 32 个线程争夺对磁盘的访问权限,并且会进一步减慢复制速度,磁盘磁头会在磁盘上来回移动而浪费时间。在 USB2 复制速度较慢的情况下,不建议使用多线程。
使用可重启模式/Z
来处理部分复制的文件。使用此选项,当复制中断而导致某些特定文件被部分复制时,robocopy 的下一次执行可以从中断处继续,而不是重新复制整个文件。不幸的是,在某些情况下,此开关会减慢复制速度。
答案2
它是单击“确定”以在操作过程中停止 Robocopy。
默认情况下它不会重新复制已经复制的文件。
确定从哪里恢复(或本质上检查哪些文件相同)的开销非常低 - 仅需几秒钟。
但是,如果您没有写入日志(或者也不/TEE
写入控制台),/V
则会增加此开销,因为将所有行写入控制台需要更长的时间。
注意::可重启模式(如评论中所述)仅用于重新启动单个文件(例如,如果一个巨大的文件在中间停止,你可以部分恢复,而不是再次复制整个文件),并且不是必需的用于按照问题的要求恢复批量复印。
答案3
我已经用了robocopy
好几年了,知道你可以在文件的中间停止复制,然后重新启动就可以快速回到上次停止的地方。除非你使用该/XN
选项,否则robocopy
将删除它正在处理的最后一个文件并重新开始复制。当它第一次创建文件时,它会将“修改”时间设置为 1980 年 1 月 1 日,所以基本上只要你的时钟设置正确,它就会看到那个时间并重新启动复制过程。正如你所说,其他文件将被忽略,因为它们的修改日期/时间与源文件相同。
就我个人而言,我使用时总是/TEE
将选项与/V
和选项一起使用,这样我就可以监视正在发生的事情(如果发生崩溃,我可以返回并查看是否存在问题)。如果您有大量的小文件(数万个或更多),它会稍微减慢速度,但它也可以帮助您确定是否存在问题。如果您缩小高度,或者更好的是,最小化命令提示符窗口,当您有大量小文件时,您可以大大加快复制速度。/LOG:
robocopy
对于您要复制的文件量来说,18 小时的时间太长了,因此,您尝试复制的文件量可能非常大,或者目录结构中存在一些递归。由于您有日志,因此您可以尝试查看日志底部,看看目录结构是否在重复。如果是,您可以尝试跳过连接点,看看是否/XJD
可以让您停止陷入的循环。该/XD
选项还可用于完全忽略特定目录。
关于该/Z
选项,该选项仅适用于“网络传输”。我将其放在引号中,因为本地副本不会使用可重启模式;但是,如果robocopy
看到网络路径,它将使用可重启模式,即使源和目标是本地的(这可能只是我的版本,robocopy
因为我不会超越 Windows 7)。如果您共享驱动器或驱动器上的文件夹(最好是只有您才有权访问的帐户),并启用权限Change
,然后使用该路径作为目标,它应该可以在可重启模式下工作。当然,使用可重启模式时性能可能会受到影响。
答案4
我要去前提挑战这里有点。我理解缓慢复制的挫败感,但中断复制并不是检查复制进度的方法。
查看磁盘 I/O 历史图表
启动性能监视器并查看磁盘 I/O 活动历史记录。您应该在系统静止时执行此操作;如果它正在执行很多其他操作,您可以查看那磁盘活动。但是,这将是尖峰;您正在寻找整个图表中的“基线”活动。我在 Mac 上将其分为读取和写入;显然您正在查看写入。(大多数其他活动将是读取)。
较旧的 Mac 版本。Windows 版本更强大。第一块是 rsync 计划复制,第二块是三个大型 MP4 视频文件,最后一块是无数个小文件。
根据我的经验,在实践中,这个栏会上下跳动很多。复制大型单个文件(视频和 TIFF 文件)时,它会固定在硬件最大吞吐量上。*
但是当复制数以亿计的小文件时,MBps 吞吐量会下降……因为驱动器必须读取(和写入)每个文件的目录条目。闪存钥匙扣上没有磁头寻道时间和等待扇区回转的延迟,但你在物理硬盘上却有。硬盘和强大的操作系统有一些策略可以缓解这种痛苦,但仍然存在很大的痛苦。
- 这就是我将所有小文件集合转换成 ZIP 包、tarball 或磁盘映像的原因。
查看到达目标驱动器的文件本身
使用 Windows(或命令提示符)浏览目标目录。找到副本的“前沿”,即现在要添加的目录。观察活动并查看是否正常。
聆听硬盘
如果您的驾驶
滴答滴答滴答……
复制过程进展顺利。驱动器正在进行大块传输,充分利用其格式化的扇区排列等。另一方面,如果你在这里
敷衍敷衍敷衍
那是磁盘抖动。你的备份出了问题,正在影响吞吐量。这个声音意味着驱动器正在寻磁头很多- 和当头部移动时,它不是在复制。更糟糕的是,当它到达时,它必须稳定下来,然后等待平均 0.5 盘片旋转,以便所需的扇区到达。驱动器以 5400-10,000 RPM 的速度旋转,因此每次寻道需要 3-6 毫秒。
在前面的图中,确实,较宽的部分让驱动器安静得像老鼠一样,而在后面的部分,则安静得像老鼠一样。
例如,有一次我在进行一次大型备份时,遇到了 550 万个小文件(30-500 字节)。当驱动器开始发出像第一次世界大战混战的声音时,我查看了图表,发现了一个坏消息。按照这个速度,复制将需要几天时间。
于是我退出应用程序,创建了一个足够大的 RAMdisk,并将 5.5M 文件复制到 RAMdisk。从 HDD 读取,这得益于磁盘缓存;写入当然是即时的。这花了半个小时然后我把它以ZIP文件的形式写回到硬盘上,ZIP文件以连续的数据流的形式写入,所以“滴答滴答滴答……”这样速度更快。
删除 5.5M 文件花了很长时间,但 ZIP 文件却在不到 1 分钟的时间内备份了。 一天下来进步很大!
至于何时中断复制,当上述内容告诉您复制无法正常工作,并且您有计划或想要尝试修复它时,您就可以这样做。
永远不要使用多线程
仪表显示,在传输单个大型文件(如视频)时,您将获得最佳吞吐量。驱动器的扇区优化工作在最佳性能水平:下一个所需扇区恰好在需要时出现在磁盘头下方。
但假设您同时复制 2 个大视频。 磁盘正在尝试同时执行这两项操作:它寻找视频 1,写入一个块,寻找视频 2,写入一个块,寻找视频 1,写入一个块,如此反复。突然间,我们开始寻找而不是写入,吞吐量的作用显而易见。
所以不要这么做。磁盘 I/O 历史图表会告诉你原因。
例如,我从内部硬盘驱动器“rsync”到外部硬盘驱动器 2。我还从外部硬盘驱动器 1 rsync 到外部硬盘驱动器 2。这些都在脚本中设置。我不会同时运行两者,因为它们会争夺外部硬盘驱动器 2,这会降低两个副本的速度。
现在你所做的就是/MT:32
告诉它线程一次复印 32 份,这正是我在这里告诉你不要做的事情。*也许多线程有助于混合、RAM 磁盘、RAID 或与特定数据集配合良好的电梯搜索算法。这听起来不像是在这里。但无论如何,不要相信我的话——你应该使用图表进行实验,找到一个快乐的数字你的硬件。(我完全希望是“1”)。
* a) 计算机 USB、b) 设备 USB、c) 读取驱动器吞吐量和 d) 写入驱动器吞吐量中的最低者。