我有一个托管在共享服务器上的 ASP.NET MVC 3 应用程序,但有以下限制:
- 100 MB 内存
- 15% 的 CPU
主机管理员说,如果应用程序达到这些限制,应用程序池将重新启动。
部署后,我注意到应用程序池重启太快(几分钟后)。我使用MonitorAspNetApplication检查内存使用情况。
首次加载时,分配的内存约为 8 或 9 MB,使用的内存约为 500 或 600 KB。
但是当我开始使用应用程序(CRUD 操作,...)时,使用的内存会上下波动,但不会超过几(6-10)兆字节。但是分配的内存会逐渐增加,直到达到 100 MB,然后应用程序池会重置。
我无法弄清楚为什么会这样。应用程序不大,不做复杂的操作或繁重的查询。
我在这个项目中首先使用 EF 代码、StructureMap、AutoMapper 和 ELMAH。
- 这个问题的可能原因是什么?我怎样才能检测和解决它们?
- 这些工具(EF、StructureMap 等)会导致这种内存使用吗?
- 这是内存泄漏吗?或者它被称为别的东西?