SCM门户中有一个非常适合CPU的Start Profiling
按钮。
然后有一些来源引用Download GC Dump
按钮:
https://stackoverflow.com/a/27987593/647845
但这似乎不再可用了。
然后是Download memory dump
按钮。
但是现在我无法弄清楚如何/我是否能够看到我所使用的类型/ Refcount / Size 统计数据。
在C#Azure Web App中查找内存泄漏的推荐方法是什么?
答案 0 :(得分:8)
尝试使用Kudu控制台。 转到https://[sitename].scm.azurewebsites.net/support 单击分析 - > Dignostics - >设置。确保选中内存转储 然后单击Dignose Now。 这仅适用于基本计划及以上(不适用于免费计划) 过了一段时间,你会得到转储 使用Visual Studio打开下载的文件,然后选择" Debug managed memory"。 然后,您可以查看详细信息。
答案 1 :(得分:2)
我看到这个帖子已经很老了,但由于我遇到了同样的问题,并且在此期间天蓝色门户发生了很大变化,我想在这里发布一些更新。
此微软开发博客提供了有关该主题的快速概述:https://devblogs.microsoft.com/premier-developer/collect-and-automate-diagnostic-actions-with-azure-app-services/
通过导航到 Azure 门户中的应用服务,选择诊断和解决问题,我设法进行了内存泄漏分析 和之后的 诊断工具 磁贴。现在您应该会看到一个收集内存转储磁贴,您可以在其中配置一个 blob 存储来创建您的内存转储以将其保存。
之后我下载了转储并使用 Visual Studio 来分析问题。
答案 2 :(得分:0)
您可以使用Kudu控制台下载内存转储并使用DebugDiag对其进行分析,您可以有多个内存转储,一个在发生泄漏之前,一个在其中,一个在之后,之后您可以比较并查看哪些对象是规模越来越大而且没有被处理
答案 3 :(得分:0)
很遗憾,kudu支持页面已被弃用。您现在可以在Diagnose and solve problems
下找到它:
下载转储文件后,请在Visual Studio中打开它们,然后按照Grandhali的建议选择“调试托管内存”。
答案 4 :(得分:-2)
从Visual Studio远程分析Azure Web App可能是最佳选择。
https://azure.microsoft.com/en-us/blog/remote-profiling-support-in-azure-app-service/