首页 > 解决方案 > 如何在性能缓慢的应用程序上选择 Azure 应用程序服务计划?

问题描述

各位码农,

我知道这个问题不完全是关于编程的,如果 SO 不适合它,请随时关闭这个问题并将我指向正确的论坛。

我开发了一个 .NET Core 3.1 应用程序,部署在 Azure 应用程序服务上,但我遇到了性能问题。

该服务由各种文件的 OCR 分析组成,OCR 部分由嵌入到 DLL 中的外部库执行。在我的笔记本电脑上,当在本地运行服务时,OCR 部分(一行代码,没有 I/O,没有执行其他任何操作)需要一到两秒。不过,它占用了大量可用的 CPU。

对于正在处理的完全相同的文件,并监视完全相同的代码行,在 Azure 上在线运行时计算需要 6 到 8 秒,而不会处理其他请求。该应用程序部署在 Azure Web App,S1 生产计划(100 ACU,约 60 美元/月)上。随着用户数量的增加,整体响应时间也在增加,这会影响整个系统的性能。

在我开始切换计划并花费客户的钱之前,我想确保我没有错过有关如何选择 Web 应用计划的重要内容。

  1. 首先,在所有其他条件相同的情况下,我是否应该期望 S1 Production WebApp在基于 CPU 的作业上比我自己的计算机慢?我的笔记本电脑配备了多核 i7-7700 CPU。它可能取决于许多外部参数,但如果有的话,我想听听一般的经验法则。
  2. 在查看 Web 应用程序的最大 CPU 使用率时,它的峰值为 50-60%,参见下面的屏幕截图。这是否意味着 CPU 使用率不是这个过程的瓶颈,因此我错过了其他东西?
  3. 关于如何为给定工作确定 Web 应用程序/服务器的维度,您会推荐哪些阅读材料?

最大 CPU 使用率,A​​pplicationInsight

谢谢你的帮助,

标签: azureperformanceasp.net-core

解决方案


根据此文档https://azure.microsoft.com/en-us/pricing/details/app-service/linux/,S1 计划有 1 个 CPU 内核和 1.75 GB RAM,我想这就是为什么即使指标显示 CPU 仅达到 50/60%,云也需要更多时间。

为了获得更好的性能,微软表示使用 PremiumV2 计划(现在也可以使用 Premium V3),但在你的情况下,我建议你将计划扩展到 S2 并配置应用程序,然后扩展到 S3 等等。 .


推荐阅读