我有一个MVC4 Web应用程序,当卷通过它时,在除生产环境之外的所有环境中消耗大约400MB RAM。当在生产服务器(外部托管)上传递类似的负载量时,内存利用率将增加到大约1.2GB,即使应用程序处于空闲状态也不会释放内存。所有环境中的IIS配置都是相同的。
还值得注意的是,应用程序在空闲时会在我的测试环境中释放一些内存,但在生产中却不会这样做。 RAM逐渐增加并以1.2-1.3GB的速度增加,但从不低于 - 即使流量完全从服务器路由出来。
我无法在除我的第三方托管平台之外的任何其他环境中重新创建此问题,但在我最终责怪基础架构并让托管公司了解该案例之前,我想知道:
a)这是一个常见问题,为什么会发生?
b)如何查看使用内存的内容
c)您是否希望相同的代码根据平台消耗显着不同级别的系统资源(我知道我的主机可能在生产中有监控等,这可能会稍微膨胀一下)
对此有任何帮助表示赞赏。
答案 0 :(得分:0)
这是我们在不同环境中工作时通常会遇到的常见问题。这是因为系统配置,Windows等因系统而异。
在这种特殊情况下,由于我们看到它有很大的不同,可能会有一些循环或内存不会定期释放。
几步:
此外,它还取决于用户在现场点击的数量和一些死锁条件。 可能有很多原因。