为什么我发现两个外部 SSD 之间的 Robocopy 传输速度很慢?

为什么我发现两个外部 SSD 之间的 Robocopy 传输速度很慢?

我正在 PowerShell 脚本中使用 Robocopy 将我的主 SSD 备份到另一个 SSD,但文件传输速度出现问题。

在 Windows 资源管理器中我的写入速度为 300~400 MB/s,而在 Robocopy 中平均为 80 MB/s。

我的命令行是这样的:

robocopy "$($source = $drv;$source)" "$($destination = "$dst";$destination)"  /e /MT:4 /NJH /NDL /NC /BYTES /copyall /A-:SH /xd $IgnorarPastas /xf $IgnorarArquivos /log:"$dst\_Backup Logs\$filedate-robocopylog.txt" /tee | Get-RobocopyProgress -ErrorAction 0

我在 PowerShell 中使用 Robocopy 的原因是我创建了一个脚本来自动检测备份和目标驱动器,这使得该过程更简单、更直观。

另一点是我使用一个函数来通过 PowerShell 实现复制进度。

我已经尝试过了。

  1. /MT我已经尝试通过更改参数来更改核心数

  2. 我已经尝试禁用进度功能,看看它是否会造成干扰。我得到的速度相同。

  3. 我已经尝试禁用日志,速度相同。

注意事项:

  1. 两款 SSD 均为 Corsair MP600 Core。
  2. SSD 是外置的,通过 Orico 外壳连接,一个有 40Gbps Thunderbolt 接口,另一个有 20Gbps USB 3.2 Gen 2 接口。
  3. 其中一个 SSD 使用我笔记本的 Thunderbolt 4 接口,另一个连接到 USB 3.2 Gen 1。我已经尝试过反转它们的连接。

评论

分析任务管理器中 SSD 的行为,我发现接收备份的 SSD 使用率为 100%,平均响应时间较高,约为 2000 毫秒。

关于如何解决这个问题,我有什么想法吗?

编辑-附加信息

最初我以为这与 Robocopy 有关,因为我通常不会在 Windows 资源管理器中直接复制大文件夹,所以我没有看到这种振荡,因为复制速度保持较高速度约 10 秒,这通常足以完成文件复制。

现在我做了深入的测试,复制了大文件夹,以便能够更长时间地分析Explorer复制过程,结果如下图所示:

在此处输入图片描述

在图中可以观察到速度波动,它在 400MB/s 左右保持一段时间,然后波动,最后稳定在 80MB/s 左右。

相关内容