gpt4 book ai didi

azure - Windows Azure 辅助角色 : One big job or many small jobs?

转载 作者:行者123 更新时间:2023-12-03 06:06:18 25 4
gpt4 key购买 nike

使用多个工作线程处理程序代码片段与处理整个负载相比是否有任何固有的优势?

换句话说,如果我的工作流程如下所示:

  1. 从queue0获取工作并执行A
  2. 将 A 的结果存储在队列 1 中
  3. 从队列 1 获取结果并执行 B
  4. 将 B 的结果存储在队列 2 中
  5. 从queue2获取结果并执行C

使用 3 个工作人员,每个工作人员自己完成整个流程,与使用 3 个工作人员,每个工作人员完成部分工作(工作人员 1 执行 1 和 2,工作人员 2 执行 3 和 4,工作人员 3 执行 5)是否有固有的优势.

如果我们只关心正在完成的工作(在步骤 5 中完成),那么它似乎会以相同的方式扩展(一旦您使用至少 3 个工作人员)。也许大工作更好,因为具有这种设置的 worker 有更少的瓶颈问题?

最佳答案

一般来说,作业越小,当某些进程崩溃时丢失的工作就越少。此外,工作越小,您就越能均匀地分配工作。 (而不是在某一时刻让一个工作实例执行一项长时间的工作而所有其他工作实例都闲置,而是让所有工作实例执行少量工作。)

抛开如何将工作分解成更小的部分不谈,有一个问题是应该有多个 worker 角色,每个角色只能做一种工作,还是应该有一个单一的 worker 角色(但有很多实例)做任何事。我会默认使用后者(可以执行所有操作的代码,只需检查所有队列以查看需要完成的操作),但有理由选择前者。例如,如果您需要更多 RAM 来完成一种工作,您可以为该工作线程使用更大的虚拟机大小。另一个例子是,如果您想独立扩展不同类型的工作。

关于azure - Windows Azure 辅助角色 : One big job or many small jobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2869175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com