【问题标题】:Azure website warmup on scale out横向扩展 Azure 网站预热
【发布时间】:2017-06-20 11:44:41
【问题描述】:

我正在努力确保我的网站在部署或横向扩展时完全预热。为此,我利用了此处讨论的 App Initialization 配置: http://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/

我正试图让它在横向上工作,因为它说它在这里受支持: https://feedback.azure.com/forums/169385-websites/suggestions/6972595-application-initialization-to-warm-up-specific-pag

我的配置本身设置如下:

<applicationInitialization>
  <add initializationPage="api/status"/>
</applicationInitialization>

我没有在 Initialization 元素上指定主机名,因为所有讨论似乎都说它不是必需的。我还将在多个环境中托管它,并且不知道横向扩展版本的主机名,因此很难拥有所需的所有配置转换。

当我部署 Web 应用程序时,预热工作正常,我可以看到它被部署到暂存槽中,然后转到我的状态页面。但是,当我向外扩展时,我看不到它正在升温。事实上,我可以看到对该 api 进行的 api 调用有时会返回 503 响应,这是来自新扩展的应用程序。

如何防止横向扩展的应用程序在预热之前接收请求?我怎样才能让它真正进行热身,如下所述: https://feedback.azure.com/forums/169385-websites/suggestions/6972595-application-initialization-to-warm-up-specific-pag

谢谢

【问题讨论】:

  • 您找到解决方案了吗?我们遇到了完全相同的问题
  • 嗨,不,我没有找到任何东西。我已经有一段时间没有研究这个问题了,所以有些事情可能已经改变了。对不起,我没有更多的帮助
  • 不要担心回复的欢呼!
  • 我们也遇到了同样的问题stackoverflow.com/questions/47025021/…
  • 您是否启用了 ssl 重定向?

标签: azure web-applications


【解决方案1】:

我们在扩展应用服务时遇到了类似的问题。当我们添加新实例时,请求收到 502 Bad Gateway 3 分钟。

我将与支持工程师一起解释我们遵循的步骤,我们可以找到我们的问题。

  1. 转到 KUDU https://{appservicename}.scm.azurewebsites.net/support
  2. 在选项卡上缓解 -> 慢请求
  3. 添加一条规则以在请求需要更长的时间时获取内存转储。我们添加一个规则:

    请求数:50

    所用时间(秒):10

    间隔(秒):60

您应该针对当前工作负载更改此值。您还可以为 5xx 错误添加另一条规则...

  1. 在“操作”选项卡上。添加“自定义操作”。更改 CollectLogs 的 CollectKillAnalyze。 Help

  1. 重现问题并下载 .dump 文件。您可以从“诊断和解决问题”的门户中找到这些文件的链接。或者来自“D:\home\data\DaaS\Logs”中的 Kudu
  2. 使用DebugDiagWinDebug 分析此文件
  3. 我们没有在预热时初始化 Redis 连接。所以基本上 RedisClient.get 在代码中有一个同步块,它只允许一个线程访问一个时间。 由于卷非常高,因此数百个工作线程正在等待同步块。 – 它需要从所有者传递到下一个,然后是下一个。

更改 Redis 连接后进行预热。扩展我们的服务时,我们没有遇到更多问题。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2014-09-21
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2017-09-28
    • 2018-01-12
    相关资源
    最近更新 更多