横向扩展后 Azure 应用服务实例可用多长时间?

Posted

技术标签:

【中文标题】横向扩展后 Azure 应用服务实例可用多长时间?【英文标题】:How long does it take for an Azure App Service instance to be available after a scale out? 【发布时间】:2020-02-24 03:54:07 【问题描述】:

上下文:我正在为托管在 Microsoft Azure App Service 上的 .NET Framework 4.7 Web 应用程序设计自动缩放(横向扩展)配置。我正在使用 P3V2 定价层。该应用程序受 CPU 限制。根据应用服务计划中指示的统计数据,该应用在 2 个实例上运行时的 30 天 CPU 平均使用率为 30%。我们偶尔会遇到流量高峰,这会使 2 个实例不堪重负:我想实现自动缩放。

在设计决定我的应用服务何时横向扩展的指标阈值时,我想考虑应用服务供应 + 应用启动时间。我需要让我的阈值足够低,以便让 Azure 有时间启动一个新的应用服务实例,但又不能太低,以至于我为不需要的处理能力支付了不必要的费用。预算是一个重要因素。

问题: Azure 应用服务实例需要多长时间才能在横向扩展后可用?换句话说,Azure 应用服务需要多长时间才能横向扩展?

附:我认识到还有很多我没有在这里讨论的扩大/缩小。我尽量简明扼要。 :)

【问题讨论】:

【参考方案1】:

一般来说,不会太长。我的意思是通常不到一分钟,但时间会因多种因素而异,例如应用程序大小、一天中的时间、部署区域。

您可以手动扩展并在扩展选项卡上检查运行历史记录。

仅供参考,您还可以使用 Azure Monitor 创建自动缩放策略,以备不时之需。

【讨论】:

感谢您的建议和伟大的建议来检查运行历史(事后看来很明显)!我验证了手动扩展应用服务时,新实例在 45 秒内开始提供流量。速度非常快。 @VinceHorst 您如何确认新实例在 45 秒内提供流量?我也想测试一下看到流量路由到新实例需要多长时间。 在每个响应的 html 正文(或 HTTP 标头)中,我们添加了一个唯一的字符串,用于标识生成响应的服务器。使用浏览器的 F12 开发工具,我们检查响应以查看标识符。例如,我们通常使用服务器 IP 地址的最后一个八位字节,或者服务器机器名的最后 5 个字符。扩大规模,他们会立即发出浏览器请求,直到您看到新的标识符。

以上是关于横向扩展后 Azure 应用服务实例可用多长时间?的主要内容,如果未能解决你的问题,请参考以下文章

横向扩展 Azure 应用服务太慢

Azure 应用服务自动缩放无法缩小

Azure VM 上的 s-s-rS 2016 横向扩展不起作用

Azure 网站可以跨多个可用区扩展吗

使 Azure Webjob 计时器触发器不作为单例运行

纵向扩展和横向扩展应用服务计划之间的区别