如何精确确定ASP.NET应用程序的应用程序池内存使用情况

3

我的托管公司在应用程序池(IIS 7.5)上设置了100mb的内存限制。

我该如何准确确定我的ASP.NET应用程序的内存使用情况?

为了创建某种基线,我创建了一个空的ASP.NET MVC 3应用程序,其中包含一个返回字符串结果的单个控制器操作。

使用ANTS对此应用程序进行分析的结果如下:

Generation 1 - 286.2KB
Generation 2 - 795.4KB
Large Object Heap - 75.63KB
Unused memory allocated to .NET - 1.323MB
Unmanaged - 26.78MB

我的担忧是,如果应用程序池限制基于私有字节,则空的ASP.NET MVC应用程序将使用33MB的池资源。因此,我的实际做一些事情的MVC应用程序(使用93MB)将很容易超过“限制”。
然而,如果我调用GC.GetTotalMemory,则结果为8MB,听起来更加可接受。
我完全没有成功地找到任何基准测试来进行测试,但是如果一个空的MVC Web应用程序确实使用33MB的资源(这听起来很过分),那么我托管方强加的限制似乎完全不现实。
非常感谢, Ben

100MB听起来完全不现实。我与之合作的一个主机在IIS 7.5下默认为600MB,可在共享主机请求时提高到800MB。 - Roger Willcocks
1个回答

0
  1. 与您的托管提供商聊天,了解该内存限制是私有内存还是虚拟限制。
  2. 了解私有内存和虚拟内存,然后利用ANTS分析器更好地了解您的应用程序的内存占用情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接