【发布时间】:2020-09-15 22:50:03
【问题描述】:
我们在 Azure 中有一个长期运行的 ASP.NET WebApp,它没有暴露真正的端点——它的功能单一,主要是读取和操作数据库数据,实际上是一个批处理的计划任务,每 30 秒由一个计时器触发一次。 该应用程序在大多数情况下运行良好,但我们偶尔会看到应用程序的 CPU 负载接近 AppServicePlan 的最大值的问题,即瞬间而不是逐渐地,并且停止执行更多计时器触发器,并且我们无法在执行代码来解决它(没有死锁等迹象,所有代码路径都有 try/catch,所以应该没有未处理的异常)。我们经常看到连接数据库时出错,但不清楚这些是原因还是症状。
请注意,这是 AppService 计划中的唯一资源。 Azure SQL 数据库位于同一区域,虽然被其他应用程序使用,但它们的使用量非常小,而且它们也没有出现问题应用程序看到的任何问题。
感觉这与基础设施有关,但我们无法找到任何东西来解释正在发生的事情,所以如果有人对我们应该寻找的地方有任何建议,我们将不胜感激。我们启用了基本的 Application Insights(不是 SDK),但除了在应用响应丢失之前看到 CPU 负载峰值之外,鉴于我们对如何最好地利用 Insights 的了解有限,我们几乎没有感兴趣的信息。
【问题讨论】:
-
关于这个问题,您目前有更好的解决方案或想法吗?这个问题很有意思,很高兴继续关注这个问题的进展。
-
@Jason,我现在没有关于这个问题的任何进一步信息 - 我们已经考虑过句柄耗尽的可能性,但据我们所知,我们没有达到任何限制
-
我建议您可以在 azure 门户中提出支持票,因为我们无法从我们的应用程序中获取更多信息。
-
您是否使用过 Azure 的分析工具或 CPU 监控在 CPU 最大化时转储进程?
-
@ChrisB_WR 是的,您应该可以在那里配置表格。根据您的设置,这也可能会有所帮助...azure.github.io/AppService/2019/10/07/… 这个 SO 答案也可能会有所帮助 - stackoverflow.com/questions/49053245/…
标签: azure-web-app-service azure-app-service-plans azure-webapps