gpt4 book ai didi

Azure 网站横向扩展预热

转载 作者:行者123 更新时间:2023-12-04 04:24:18 30 4
gpt4 key购买 nike

我试图确保我的网站在部署或扩展时完全预热。为此,我利用了应用程序初始化配置,如下所述: 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>

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

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

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

谢谢

最佳答案

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

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

  1. 转到 KUDU https://{appservicename}.scm.azurewebsites.net/support
  2. 在“缓解”选项卡上 ->“缓慢请求”
  3. 添加一条规则,以便在请求花费较长时间时获取内存转储。我们添加一条规则:

    请求数量:50

    所用时间(秒):10

    间隔(秒):60

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

Configuration for memory dump

  • 在“操作”选项卡上。添加“自定义操作”。将 CollectKillAnalyze 更改为 CollectLogs。 Help
  • Action

  • 重现问题并下载 .dump 文件。您可以从“诊断和解决问题”门户中找到这些文件的链接。或者从“D:\home\data\DaaS\Logs”中的 Kudu enter image description here
  • 使用 DebugDiag 分析此文件或WinDebug
  • 我们没有在预热时初始化 Redis 连接。所以基本上 RedisClient.get 在代码中有一个同步块(synchronized block),它只允许一个线程访问同一时间。由于数据量非常高,因此数百个工作线程正在等待同步块(synchronized block)。 – 它需要从所有者手中传递给下一个所有者,然后再逐个传递给下一个所有者。
  • Stack trace

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

    希望这可以帮助你。

    关于Azure 网站横向扩展预热,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652159/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com