【发布时间】:2015-06-02 07:55:56
【问题描述】:
我们有一个托管在 Windows Azure 中的 ASP.NET MVC 网站。
RAM 飙升至约 3GB,因此我使用 Azure 诊断即服务 (DaaS) 工具进行了内存转储。
在使用 Visual Studio 调试托管内存时,我发现我的托管代码只占用了这 3GB 中的 500MB,还有 2.5GB 的内存下落不明。
这是 DaaS 内存分析报告的截图:
以及证明文件大小的转储文件:
如果 w3wp 中的代码不是我的托管代码,我该如何查看它正在占用我的 RAM?
编辑
来自调试诊断工具的虚拟内存信息:
【问题讨论】:
-
也许您有托管资源,但未释放非托管资源。关于如何使用 WinDBG 有很多很棒的教程。
-
@YuvalItzchakov - 您的评论似乎无助于回答问题或帮助 try 并回答它。也许您可以通过一些链接和代码示例创建一个答案,并解释为什么您认为这是托管资源没有释放非托管资源的问题。
-
@Pure.Krome 这个问题太宽泛了,有很多可能的解决方案。解释如何工作 WinDBG 或为什么我假设它可能是一个可能的托管资源持有非托管资源将仅仅基于理论将浪费时间并且过于笼统。相信我,我可以帮助 OP,我会的。鉴于这个问题中给出的细节很少,这是不可能的。
-
我刚刚发现您的答案基本上是这样的:“Go google for WinDBG.GLHFTHXBBQ”。相反,我希望你可以这样说:“好的 - 棘手的问题。相当广泛。让我们试着锁定它一点。试试这个(链接)和这个(另一个链接)看看它是否可以做托管不释放非托管...”。我并不讨厌 - 只是想看看如何解决这个问题......我也多次遇到这个严重的问题,这很令人担忧。
-
不要忘记考虑操作系统使用的 RAM 或您在同一虚拟主机计划上运行的其他网站消耗的 RAM。
标签: .net azure-web-app-service memory-dump