C# 使用Azure DataMovementLibrary实用程序限制资源使用

C# 使用Azure DataMovementLibrary实用程序限制资源使用,c#,process,resources,azure-storage,C#,Process,Resources,Azure Storage,我编写了一个小实用程序,使用数据移动库(0.2.0)从我的一台服务器运行夜间备份到Azure blob存储: 漂亮的图书馆。不管怎么说,我想知道是否有一种方法可以限制这个项目的资源使用?我每天晚上都要传输一些gig的数据,但我更愿意使用“低分布”的资源使用率,而不是“让我们尝试一次将其全部填满”的场景 我怀疑这更像是一个通用的流程资源问题,而不是这个库的任何特定问题,尽管我从来没有真正需要在其他地方担心过这样的问题,并且希望有一些指针 我最优先考虑的是带宽:我希望在网络上保持合理数量的开放缓冲区

我编写了一个小实用程序,使用数据移动库(0.2.0)从我的一台服务器运行夜间备份到Azure blob存储:

漂亮的图书馆。不管怎么说,我想知道是否有一种方法可以限制这个项目的资源使用?我每天晚上都要传输一些gig的数据,但我更愿意使用“低分布”的资源使用率,而不是“让我们尝试一次将其全部填满”的场景

我怀疑这更像是一个通用的流程资源问题,而不是这个库的任何特定问题,尽管我从来没有真正需要在其他地方担心过这样的问题,并且希望有一些指针

我最优先考虑的是带宽:我希望在网络上保持合理数量的开放缓冲区,并将CPU使用限制在合理数量。拉姆似乎在很大程度上能照顾好自己,但如果我能很容易地把它盖上,我会去的

我目前通过2012R2服务器上的Windows任务计划程序启动此控制台应用程序实用程序。我唯一的线索是可能设置一个启动器,创建一个低优先级的进程来启动实用程序,但我不确定这与特定的资源有什么关系


我还可以做些什么来控制将使用的资源?

当前DateMovement库不支持指定资源使用上限,但可以尝试配置较低的TransferManager.Configurations.ParallelOperations作为解决方法。

谢谢。我曾考虑过这一点,但不确定这是否会为数量较少的并行行动投入更多的资源。例如,如果有100个单位的可用资源和10个并行操作,那么每个操作就有10个单位。如果我将并行计数改为2,那么每个操作会有50个单位吗?如果此设置对所使用的资源量有实际影响,这将是一个很大的帮助(我打算某天测试此设置)。如果选择较低的并行率,将消耗较低的资源(CPU/内存/带宽),尽管它可能不是线性的。