gpt4 book ai didi

rebus - NumberOfWorkers 和 MaxParallelism 选项的目的或关系是什么?

转载 作者:行者123 更新时间:2023-12-03 23:23:31 26 4
gpt4 key购买 nike

前几天我遇到了一个问题,我对 worker 进行了缩放 SetNumberOfWorkers mock 数字期望看到吞吐量的同等增长。我一次只能看到 5 个 worker 在做任何工作。找出魔法上限是 Max Parallelism 选项的默认值是 5。

我的假设是 1 个 worker 等于 1 个线程。
NumberOfWorkers的目的或关系是什么?和 MaxParallelism选项?

最佳答案

虽然我意识到这可能不是很清楚,但实际上很简单。

您完全正确,“工作人员数量”是此特定总线实例中工作线程的数量。

但是由于 Rebus 中的所有内容都是 async现在,如果该工作可以是 await,那么一名 worker 可以并行执行大量工作。编。

因此 - 为了避免做太多工作 - 引入了“最大并行度”概念,它对并行处理的消息数量设置了全局最大上限。

要使用哪些值取决于您要执行的工作类型。以下是一些合理的设置:

  • 工作主要是异步的——你可以使用一些工作线程和相当高的并行性,例如.SetNumberOfWorkers(2).SetMaxParallelism(20)
  • 工作是快速和同步 - 您可以使用一些工作线程和匹配的并行性,例如.SetNumberOfWorkers(5).SetMaxParallelism(5) (尽管在这种情况下将并行度设置得更高不会有任何影响)
  • 工作是和同步 - 您可以使用更多的工作线程和匹配的并行性,例如.SetNumberOfWorkers(15).SetMaxParallelism(15) (再次:在这种情况下,将并行度设置得更高不会影响任何事情)

  • 正如您所正确观察到的,由于并行度设置对可以并行处理的消息数量设置了绝对上限,因此将并行度设置为低于线程数是没有意义的。

    编辑:我添加了 this page到维基 - 感谢你让我意识到这个概念在任何地方都没有解释:)

    关于rebus - NumberOfWorkers 和 MaxParallelism 选项的目的或关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622778/

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