我们有一个使用Entity框架和inmemorycache的asp.net MVC网站(nopcommerce 3.6)( Site 1 )。该网站的内存消耗非常高。达到~14gb。 该应用程序位于具有16GB RAM的Windows 2008服务器中。
我需要帮助理解以下场景/行为:
当服务器中当前没有其他应用程序正在使用时,应用程序似乎似乎释放内存。它使用最大内存。
但是,如果我启动另一个asp.net应用程序(站点2 )并推送它消耗一些内存,站点1 将发布其内存(大幅下降),这两个应用程序开始共享RAM。
这是一种可以接受的行为吗当我的RAM达到100%并且只有一个网站正在运行时会发生什么?
我的网站1何时会自动释放内存?只有当我的RAM达到100%时GC才会启动吗?
我有内存泄漏吗?如果是这样,当站点2 需要它时,它如何释放内存?
注意:我们使用代理和跟踪功能缓存EF对象(使用inmemory objectcache)。 是的dotmemory是我的下一个选择。