如何调试 Azure Web App 内存泄漏?

How to debug Azure Web App memory leaks?

SCM 门户中有一个出色的 Start Profiling 按钮,非常适合 CPU。

然后有一些来源引用了 Download GC Dump 按钮:

但是那个似乎已经不可用了。

然后是Download memory dump按钮。 但是现在我无法弄清楚 how/if 我可以看到我也使用过的 Type / Refcount / Size 统计数据。

在 C# Azure Web 应用程序中查找内存泄漏的推荐方法是什么?

从 Visual Studio 远程分析 Azure Web 应用程序可能是最佳选择。

https://azure.microsoft.com/en-us/blog/remote-profiling-support-in-azure-app-service/

尝试使用 Kudu 控制台。 转到 https://[sitename].scm.azurewebsites.net/support 单击分析 -> 诊断 -> 设置。确保选中内存转储 然后单击立即诊断。 这仅适用于基本计划及更高版本(不适用于免费计划) 一段时间后你会得到转储 使用 Visual studio 和 select "Debug managed memory" 打开下载的文件。 然后你可以看到详细信息。

您可以使用 Kudu 控制台下载内存转储并使用 DebugDiag 对其进行分析,您可以有多个内存转储,一个在泄漏发生之前,一个在泄漏发生期间,一个在泄漏发生之后,稍后您可以比较并查看哪个对象越来越大,但没有被处理掉

很遗憾,kudu 支持页面已被弃用。您现在可以在 Diagnose and solve problems 下找到它:

下载转储文件后,在 Visual Studio 中打开它们并单击“收集内存转储”,如

我看到这个帖子很老了,但由于我遇到了同样的问题,而且 azure 门户在此期间发生了很多变化,我想 post 在这里进行一些更新。

此 Microsoft 开发者博客对主题进行了快速概述:https://devblogs.microsoft.com/premier-developer/collect-and-automate-diagnostic-actions-with-azure-app-services/

我通过导航到 Azure 门户中的 App Service,选择 [,成功地进行了内存泄漏分析。 =23=]诊断和解决问题,然后是诊断工具 磁贴。现在您应该会看到 Collect Memory Dump 磁贴,您可以在其中通过配置 blob 存储来创建内存转储。

之后我下载了转储并使用 Visual Studio 来分析问题。