我们正在努力将我们的一个 Web 应用程序托管在 IIS7 服务器上。此服务器托管多个 Web 应用程序,每个应用程序都有自己的应用程序池。
一个简单的 MVC5 应用程序,由两个模型和几个带有表单的视图组成,使用 3 到 500 兆字节的内存。对于这样一个简单的应用程序来说,这是相当多的。因为这是一个非常简单的应用程序,所以我们很确定我们这边没有内存泄漏。
我们想知道为什么需要这么多内存,以及是否可以以某种方式限制内存。我们已经尝试设置回收虚拟内存和物理内存的限制,但仍然没有解决方案。
编辑:解决了我们的问题,但尚未发布作为答案,因为原因仍不完全清楚:
删除外部库 (Telerik Kendo MVC) 完全解决了我们的问题。删除 DLL 和引用导致内存使用量下降到非常可控的水平(80 到 200 之间)。我理解为什么会这样,并且可以想到导致内存使用量过高的各种原因。
他们还有这个库的前端版本,所以我用这个测试了它。如果我添加 javascript 库并调用它们的一些最基本的元素,我也会得到相同的高内存使用率。为什么以及 javascript 库如何影响服务器端内存使用?