Azure 上的 .NET Framework Web 应用程序中 CPU 使用率较高

问题描述 投票:0回答:2

在部署为 Azure 应用服务的生产 Web 应用程序 (.NET Framework 4.7.1) 上,我们注意到 CPU 使用率很高。 这似乎是在应用程序工作每隔几天后就会发生一次。 为具有相同服务层和相似使用情况(平均用户)的其他客户端部署相同的应用程序似乎表现更好。

从“诊断和解决问题”部分获取 .NET Profiler Trace。 在生成的报告中,CPU 使用率排名前 4 的线程各占 15%。 它们中的每一个似乎都与垃圾收集器有关,但我不知道如何进一步调试它。 我会很感激任何线索。

.NET Profiler Trace

asp.net performance garbage-collection azure-web-app-service profiler
2个回答
1
投票

如果不查看相关应用程序的代码,就很难回答这个问题,但我建议您仔细查看以下内容以查找原因

  1. 检查流和数据库连接等重对象是否正在使用 正确处置(明确处置或包装使用)
  2. 检查字符串变量是否被正确分配或覆盖
  3. 检查没有进程可以锁定您的线程并强制重建 线程(如果您异步处理事情或线程等待 外部资源)

希望这些能指出根本原因,祝你好运!


0
投票

您可以使用“主动 CPU 监控”。当 CPU 超过 90% 持续 30 秒时,它会收集转储(这些阈值都是可配置的); https://azure.github.io/AppService/2019/10/07/Mitigate-your-CPU-problems-before-they-even-happen.html

© www.soinside.com 2019 - 2024. All rights reserved.