Asp.net 内存消耗因环境而异

Asp.net 内存消耗因环境而异,asp.net,iis,asp.net-mvc-4,memory-management,memory-leaks,Asp.net,Iis,Asp.net Mvc 4,Memory Management,Memory Leaks,我有一个MVC4 web应用程序,当卷通过它时,在除生产环境之外的所有环境中都会消耗大约400MB的RAM。当在生产服务器(外部托管)上通过类似的负载量时,内存利用率将增加三倍至~1.2GB,即使应用程序处于空闲状态,内存也不会释放。所有环境中的IIS配置都是相同的 还值得注意的是,当应用程序空闲时,会在我的测试环境中释放一些内存,但在生产环境中不会这样做。RAM逐渐增加,最高可达1.2-1.3GB,但决不会低于1.2-1.3GB–即使流量完全从服务器路由出去 除了我的第三方托管平台之外,我还无

我有一个MVC4 web应用程序,当卷通过它时,在除生产环境之外的所有环境中都会消耗大约400MB的RAM。当在生产服务器(外部托管)上通过类似的负载量时,内存利用率将增加三倍至~1.2GB,即使应用程序处于空闲状态,内存也不会释放。所有环境中的IIS配置都是相同的

还值得注意的是,当应用程序空闲时,会在我的测试环境中释放一些内存,但在生产环境中不会这样做。RAM逐渐增加,最高可达1.2-1.3GB,但决不会低于1.2-1.3GB–即使流量完全从服务器路由出去

除了我的第三方托管平台之外,我还无法在任何其他环境中重现此问题,但在我最终将责任归咎于基础设施并将此案件归咎于托管公司之前,我想知道:

a) 这是一个常见问题吗?为什么会发生

b) 我怎样才能看到内存在使用什么

c) 您是否希望相同的代码基于平台消耗显著不同级别的系统资源(我知道我的主机在生产中可能有监控等,这可能会稍微膨胀)


非常感谢您的帮助。

这是我们在不同环境下工作时经常遇到的问题。这是因为系统配置、Windows等因系统而异

在这个特殊的情况下,正如我们所看到的,这是一个很大的区别,可能有一些循环或内存没有定期释放

几个步骤:

  • 尝试找出问题的根源,即哪种方法需要时间。使用类似nlog的记录器
  • 如果您使用的是Sql Server,请尝试使用探查器
  • 第三是使用
它还取决于用户访问站点的次数和一些死锁情况。
相同的原因可能有很多。

这两台机器(测试和生产)是否具有相同数量的RAM?是的,两台机器都安装了4GB的生产环境IIS 8.5(windows 2012 R2)?目标框架4.5或4.5.1是什么?