2

我们有一个使用实体框架和内存缓存的 asp.net MVC 网站(nopcommerce 3.6)(站点 1 )。该站点的内存消耗非常高。达到〜14GB。该应用程序位于具有 16GB RAM 的 Windows 2008 服务器中。

我需要帮助来理解以下场景/行为:

当服务器中当前没有其他应用程序正在使用时,该应用程序似乎没有释放内存。它使用最大内存。

但是,如果我启动另一个 asp.net 应用程序站点 2)并推动它消耗一些内存,站点 1会释放它的内存(急剧下降)并且这两个应用程序开始共享 RAM。

这是一种可接受的行为吗?当我的 RAM 达到 100% 并且只有一个网站在运行时会发生什么?

我的站点 1 何时会自动释放其内存?只有当我的 RAM 达到 100% 时,GC 才会启动?

我有内存泄漏吗?如果是这样,它如何在站点 2需要它时释放内存?

注意:我们在启用代理和跟踪的情况下缓存 EF 对象(使用内存对象缓存)。是的,dotmemory 是我的下一个选择。

4

0 回答 0