1

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

还值得注意的是,应用程序在空闲时会在我的测试环境中释放一些内存,但在生产环境中不会这样做。RAM 逐渐增加并达到 1.2-1.3GB,但从未低于 - 即使流量完全远离服务器。

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

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

b)我如何查看正在使用内存的内容

c)您是否希望相同的代码根据平台消耗显着不同级别的系统资源(我知道我的主机可能在生产中进行监控等,这可能会膨胀一点)

对此的任何帮助表示赞赏。

4

1 回答 1

0

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

在这种特殊情况下,我们看到它有很大的不同,可能有一些循环或内存没有定期释放。

几个步骤:

  • 尝试找出问题的根源,即哪种方法需要时间。使用像 nlog 这样的记录器。
  • 如果您使用的是 Sql Server,请尝试使用分析器
  • 第三个是使用ants-performance-profiler

它还取决于现场访问的用户数量和一些死锁条件。同样的原因可能有很多。

于 2013-07-22T07:02:00.073 回答