我们使用Azure网站作为我们的平台提供商,我正在调试与托管应用程序相关的一些内存问题,我们需要一种实用的方法来了解我的应用程序为什么会消耗这么多内存。
我们有50个在线用户,但是从120个线程中消耗了1.5 GB的IIS进程。我尝试了内存转储但我没有得到足够的线索来解决问题。过去我使用的是yourkit.net分析器。发现问题非常顺利,因为我能够监视线程及其内存使用情况。
我的工作集作为私有工作集中的内存量加上进程正在使用的可由其他进程共享的内存量非常接近private_memory。
我的私有字节是我的进程分配的内存的当前大小(以字节为单位),无法与其他进程共享。所以看起来我正在使用所有这些内存。
但无法决定我如何使用这么多记忆。我的系统每个用户的成本超过25兆字节。这对我的可扩展性产生了真正的担忧。
我安装了NewRelic,但我没有得到那么多的帮助。
答案 0 :(得分:2)
为什么不下载GC转储并在笔记本电脑上进行分析(我使用的是Visual Studio Ultimate,但也许yourkit.net分析器也可以导入它?)
答案 1 :(得分:1)
查看DaaS站点扩展(您可以从http://.scm.azurewebsites.net访问它)。它有一个内存转储分析器,可以为您分析内存转储并突出显示它找到的任何问题。
您可以在此处找到更多详细信息:http://azure.microsoft.com/blog/2014/07/08/daas/
答案 2 :(得分:0)
Azure最近推出了ServiceProfile。此工具可帮助您确定密集型流程的内存使用情况。 https://serviceprofiler.azurewebsites.net/