1

我知道我的问题不是很具体,也没有明确的答案,但我需要帮助来弄清楚从哪里开始寻找。

所以我们在 azure 门户上工作,并有一个从队列中获取消息并处理它们的 Web 作业;出于某种奇怪的原因,当我使用 S1 计划时(规格:1x 内核,总共 100 个 ACU -我认为它是 azure 的某个单元:azure 计算单元 - 1.75 GB 内存,A 系列计算)每条消息大约需要 1 分钟来处理,但是当我升级 S3 计划时(规格:4 个内核、400 个总 ACU、7 GB 内存、A 系列计算)每条消息需要 3 分钟......我会理解每条消息是否需要与它相同的时间正在线性处理,也许增加处理器可能对它没有太大影响,但它怎么可能让它变慢呢?

如果有任何建议可以帮助我调试此问题,我将不胜感激。

更多信息

Web 应用程序是一个 Visual Studio MVC 项目。

4

1 回答 1

1

如果增加层级,处理消息所花费的时间将大大缩短。所以处理消息的逻辑可能有问题。请重新审视逻辑。

在 Web 作业的情况下,您需要增加应用服务的层级来扩展它。随着 App Service 升级到更高的层级,内存和 CPU 在 App Service 和 Web Job 之间共享。如果不缩放应用服务,就无法缩放 Web 作业。

我的建议是将 Web 作业替换为云服务(工作者角色)。我有 Web 作业来处理来自 Queue 的消息,结果证明它在扩展的情况下效率低下,Azure 不再建议使用 Web 作业。所以我将其替换为 Worker 角色。您还可以尝试使用 Azure Functions 来处理消息。

于 2018-10-01T14:09:49.427 回答