Hug*_*une 14 windows command-line robocopy command-line-arguments windows-10
windows 工具robocopy有一个命令行开关/NOOFFLOAD。这个开关实际上有什么作用,在什么情况下我会使用它?
开关的文档说
/NOOFFLOAD :: copy files without using the Windows Copy Offload mechanism.
Run Code Online (Sandbox Code Playgroud)
对“Windows 复制卸载机制”的进一步研究导致了此 msdn 文档,但我无法理解禁用卸载实际上会产生什么影响。
如果网络文件共享位于使用“窗口复制卸载”的服务器上,那么/NOOFFLOAD在复制过程中使用有什么明显的好处/缺点?
例如,它会增加或减少服务器上的负载,还是以其他资源为代价加快传输速度?
Mok*_*bai 13
理论上,远程服务器上的负载(按合计)是相同的。这是从一台服务器下载的相同数量和上传到另一台服务器的相同数量,但该负载的焦点转移了。
从您的链接:
通过将副本卸载到服务器,它变成了执行副本的服务器本身。对于同一数据中心中的两台服务器,它可以快得多,因为复制可以以本地数据中心链接速度进行。如果您与两台服务器的连接速度均为 10mbps,但它们的本地连接速度为 10gbps,那么相比之下,本地复制将非常慢。它可能会导致更高的即时 CPU 或网络负载,但传输速度可能会更快。甚至可能是传输效率更高,因为您和服务器之间的各种网络设备造成的延迟更低。
正如该链接中提到的,通过将副本卸载到服务器本身,您几乎可以完全从等式中删除本地机器:
源文件和目标文件可以在同一个卷上,两个不同的卷由同一台机器托管,一个本地卷和一个通过服务器消息块(SMB2 或 SMB3)的远程卷,或者通过 SMB2 或SMB3
因此,无论是同一台服务器还是不同的服务器,复制操作都会更加高效,并且会使用任何可用的东西。
在具有重复数据删除功能的服务器或集群上,就 CPU 和磁盘时间而言,副本可能实际上是零成本,因为在进行更改之前不需要复制实际的文件数据。只需要创建一个文件引用。在这种情况下,使用/NOOFFLOAD会造成大量资源浪费,因为您将下载数据并重新上传,同时迫使服务器重新检查和删除重复数据。
禁用卸载将强制下载通过您的机器。您将从一台服务器下载数据并将其上传到另一台服务器。在某些情况下,这可能是可取的,特别是如果您知道自己位于两台服务器之间并且拥有更有效的链接,也许路由或管理设备较少。
Kub*_*ica 11
卸载是一种优化机制:当您在不在您机器上的两个位置之间复制文件时,您的机器无需查看数据,前提是这些位置可以相互一致以直接执行传输。这是一个可选的优化,将在可能的情况下使用。但是/NOOFFLOAD禁用它,所以即使可以使用优化 - 它也不会。这基本上是一种过早的悲观。实际使用它的理由很少。有时会坚持/NOOFFLOAD要确保实际执行了数据的副本,而不是例如硬链接文件。明确一点,事实并非如此,使用此选项代替备份是愚蠢的差事 - 通常附有价格标签。
在卸载机制可用的情况下,存储通常会进行重复数据删除,即使数据将通过您的系统进行往返,它只会到达将丢弃重复块的块重复数据删除过滤器。换句话说:/NOOFFLOAD不会让任何事情变得更好,但它会使事情变得更糟,最终结果完全相同 - 如果你很幸运(继续阅读)。
我所知道的唯一用例/NOOFFLOAD与技术精明但其他“常规”高级用户有关的是网络压力测试。如果您想在网络和存储系统上施加一些负载,/NOOFFLOAD将确保您获得最坏的情况,即在混洗的数据量方面。但这不是免费的:使用会/NOOFFLOAD增加副本中数据损坏的可能性. Windows 虚拟文件系统中没有端到端的数据完整性保护,并且在没有卸载的情况下完成的文件复制具有可衡量的位翻转潜力。这对边缘系统和网络的打击尤为严重。因此,如果您认为要进行压力测试,请使用您不关心的数据进行,即在副本同步到磁盘后将其删除。
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |