Dir*_*oer 5 resources azure azure-app-service-plans azure-web-app-service
我试图了解我需要如何为大量低流量应用程序设置我的 Azure 基础结构。我试图更好地了解潜在的局限性。
为什么我可以轻松拥有 100 个在本地计算机上几乎不执行任何操作但在 Azure 应用服务上不执行任何操作的 Web 应用?
Azure 已经开始警告你,你每年支付 1440 欧元的服务器有 17 个 Web 应用程序。所以我们谈论的是 17 个应用程序,其中大多数几乎没有任何流量。
更糟糕的是 - 甚至登台插槽计数。因此,您必须经常手动停止暂存槽,否则您运气不好,每年只能以 1440 的速度运行8 个低流量应用程序。
这是来自 Azure 上的一个较小实例(8 个应用程序限制 - 如果您有暂存槽,则为 4 个)
说明您的应用服务计划接近饱和。
我们检测到您的应用在小型工作器上运行,并且当前的应用服务计划 Default1 平均同时运行 8 个活动应用。
属于同一应用服务计划的应用竞争同一组资源。我们的数据表明,在小型工作人员上运行的应用服务计划中有 8 个以上的活动应用会降低应用性能。它会导致 CPU 和内存争用,从而导致可用性和可靠性损失。
考虑下面的故障排除和后续步骤中描述的解决方案之一。
附加信息 对于生产应用程序,建议应用服务计划不要超过一定数量的站点。该数字实际上可能会更低,具体取决于托管应用程序的资源密集程度,但作为一般指导,您可以参考下表。
在他们的文档(销售过程)中,他们承诺无限:
我多次尝试通过 Azure 帮助台获得正确的答案,但他们一直给出模糊的答案,例如竞争资源- 没有具体说明那是什么。此外,当此应用服务在 CPU 和内存限制范围内时。
所以这是一个建议——我为什么要关心?
因为当我的应用程序不稳定时(更多的是底层存储),他们总是提到我应该首先将应用程序的数量限制在推荐范围内。
这意味着目前 Azure 中没有针对大量微服务和低流量应用程序的解决方案。
至少要更好地理解这一点 - Azure 和我的本地机器有什么区别?在云环境中被大量被动应用耗尽的资源是什么- 因为这似乎不是内存或 CPU。
次要 - 对于每天只有数十次点击的大量网站,有什么解决方法?
1. 应用服务计划层
您正在使用隔离服务计划,这是人们会选择的典型计划。根据微软的文档:
隔离服务计划旨在运行需要在虚拟网络中运行的关键任务工作负载。独立计划允许客户使用 Dv2 系列 VM 在 Azure 数据中心的私有、专用环境中运行他们的应用程序,与标准相比,它具有更快的处理器、SSD 存储和两倍的内存与核心比率。与隔离计划一起使用的私有环境称为应用服务环境。该计划可以扩展到 100 个实例,并根据要求提供更多实例。您可以找到有关隔离计划和应用服务环境的更多详细信息
它是完全隔离的,在自己的虚拟网络上运行,并在 Azure 数据中心的私有专用环境中运行,使用 Dv2 系列 VM,具有更快的处理器、SSD 存储以及与标准相比翻倍的内存与核心比率。
这不是 100 个被动应用程序通常需要的东西。还要记住,暂存槽是一个合适的网络应用程序。在许多情况下,用于在进入生产之前进行最终测试。
我的第一个建议是查看符合您标准的更便宜的应用服务计划选项,因为隔离计划非常昂贵。
2. 资源限制与指南
Microsoft 可能会说您可以托管“无限服务”,但如果您查看合同的小写字母以获得支持,您必须遵循推荐的指南,在您的情况下是 17 个应用程序。
3. 家庭与云
每个正在运行的应用程序都有其内存开销。根据应用程序,它可能更小或更大。几个静态列表或字典可能足以让应用程序开始消耗比您想象的更多的内存。CPU 通常更难泄漏(无限循环)。然而,将您的本地计算机(我猜它具有 16GB 的 RAM 和 4 到 6 个内核)与具有 1 个内核和 3.5GB 的 RAM 的较小的独立服务实例进行比较是不公平的。

你的笔记本电脑快多了...
4. 更新的建议解决方案(使用 S1 和 S2 计划)
如果你想要微软的支持,你必须遵循他们的建议。
如果您不需要支持,我强烈建议您密切监控您的应用服务计划,因为您实际上可能会耗尽资源。S1计划有1.75 GB内存,一点也不多。服务器中的内存耗尽可能会导致一些意外问题。
如果我是你,我会从 S1 和 S2 升级到 P1V2 和 P2V2。成本略有增加,您可以获得两倍以上的资源,加上微软推荐的应用程序增加到 16 个!
通过转向 P1V1 和 P2V2 计划,您实际上可以省钱。你也可以看看Fabric Mesh。