11

Start ProfilingSCM 门户中有一个非常适合 CPU的优秀按钮。

在此处输入图像描述

然后有一些引用Download GC Dump按钮的来源: https ://stackoverflow.com/a/27987593/647845

但这似乎不再可用。

然后是Download memory dump按钮。但是现在我不知道如何/是否可以看到我也使用的类型/引用计数/大小统计信息。

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

4

5 回答 5

9

尝试使用 Kudu 控制台。转到https://[sitename].scm.azurewebsites.net/support 单击分析 -> 诊断 -> 设置。确保选中内存转储,然后单击立即诊断。这仅适用于基本计划及以上(不适用于免费计划)一段时间后,您将获得转储 在此处输入图像描述 使用 Visual Studio 打开下载的文件并选择“调试托管内存”。然后您可以查看详细信息。 在此处输入图像描述

于 2016-03-18T09:35:53.833 回答
9

不幸的是,kudu 支持页面已被弃用。您现在可以在以下位置找到它Diagnose and solve problems天蓝色门户的屏幕截图

下载转储文件后,在 Visual Studio 中打开它们,然后单击“收集内存转储”,就像Grandhali 建议的接受答案一样

于 2019-07-04T13:47:16.680 回答
2

我看到这个线程已经很老了,但是由于我遇到了同样的问题,而且在我想在这里发布一些更新的时候,天蓝色的门户发生了很大的变化。

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

我通过导航到Azure 门户中的应用服务,选择诊断和解决问题,然后选择诊断工具磁贴,成功地进行了内存泄漏分析。现在您应该会看到一个收集内存转储磁贴,您可以在其中通过配置 blob 存储来创建内存转储以将其保存到。

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

于 2021-08-06T10:37:34.010 回答
-1

您可以使用 Kudu Console 下载内存转储并使用 DebugDiag 对其进行分析,您可以拥有多个内存转储,一个在泄漏发生之前,一个在泄漏发生期间,一个在泄漏之后,稍后您可以比较并查看哪些对象的大小正在增长并且没有被处置

于 2016-03-21T16:21:03.593 回答
-2

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

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

于 2016-03-16T16:19:32.973 回答