azure - Azure 门户 Web 作业执行时间
问题描述
我知道我的问题不是很具体,也没有明确的答案,但我需要帮助来弄清楚从哪里开始寻找。
所以我们在 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 项目。
解决方案
如果增加层级,处理消息所花费的时间将大大缩短。所以处理消息的逻辑可能有问题。请重新审视逻辑。
在 Web 作业的情况下,您需要增加应用服务的层级来扩展它。随着 App Service 升级到更高的层级,内存和 CPU 在 App Service 和 Web Job 之间共享。如果不缩放应用服务,就无法缩放 Web 作业。
我的建议是将 Web 作业替换为云服务(工作者角色)。我有 Web 作业来处理来自 Queue 的消息,结果证明它在扩展的情况下效率低下,Azure 不再建议使用 Web 作业。所以我将其替换为 Worker 角色。您还可以尝试使用 Azure Functions 来处理消息。
推荐阅读
- html - 在 Netlify.toml 文件中设置多个重定向
- r - 仅对缺失日期使用滞后函数递增日期
- date - 在SAS中的多个主题的日期条目之间创建唯一日期列表?
- reactjs - Draft.js - createWithContent 或 convertFromRaw 抛出错误
- java - Artifactory REST API 拒绝有效的 JSON
- haskell - 如何解释 Haskell 中的关联性/优先级
- reactjs - 如何在 axios.get 中添加正文?
- linux - Bash - 多行 Whiptail 反标题
- python - 避免使用双引号将 pandas.to_sql 写入表(PostgreSQL 数据库)
- c++ - 如何在 C++ 中使用双链表实现迭代器前后方法?