我们正在尝试实现一个围绕 AzCopy 的包装器,该包装器将在低网络带宽环境中运行。但是,我们无法找到有关 AzCopy 运行所需的最小带宽以及并发操作数参数是否有下限的明确信息。
非常感谢任何帮助。
最佳答案
将环境变量 AZCOPY_CONCURRENCY_VALUE 设置为“AUTO”。这在低带宽情况下很有帮助,因为它会导致 AzCopy 使用比正常情况少得多的连接。 (这通常足以解决低带宽问题)
您还可以通过在命令行中添加类似以下内容来为 AzCopy 指定明确的速度上限:--cap-mbps 10 (根据您的环境选择合理的数字)
如果(且仅当)您的带宽较低,每个 AzCopy 作业中有多个文件,并且需要使用 azcopy jobsresume 来恢复失败的作业,则设置环境变量 AZCOPY_CONCURRENT_FILES。如果文件很大,则将其设置为 1;如果文件较小,则将其设置为 4 或 8 左右。 (默认值为 64。减少它意味着每个失败的作业在失败时都会有更少的正在运行的文件,这在恢复时会很好)。
至于改变 block 大小。我从来没有真正推荐过这样做。有一个 --block-size-mb 参数。我认为较小的 block 大小可以使操作在重试时更有可能成功。但上述步骤通常有效,因此通常不需要更改 block 大小。而且,对于大于几十 GB 的文件,您实际上无法强制使用尽可能小的大小,因为如果这样做,就会超出 Azure 的 block 计数限制。因此,不考虑 block 大小并让 AzCopy 自动设置它可能会更容易。
AzCopy 在使用可用带宽方面做得很好。 IE。物理安装的带宽中尚未被其他流量使用的部分。出于计算目的,网络速度高达 5Gbps,我建议您假设它将使用 90% 的可用带宽。如果您的磁盘和网络比这更快,那么您需要并行传输至少两个文件来填充网络(因为我们目前通常无法在单个文件上获得超过 5 Gbps 的速度) )。
关于azure - AzCopy 中 'number-of-concurrent-operations' 参数和 'minimum network bandwidth required' 的下限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64660677/