【发布时间】:2012-03-28 19:27:03
【问题描述】:
我有一个网站应用程序在 IIS 7.0 上的它自己的应用程序池中运行。该应用程序是一个 ASP.NET MVC 3 网站。
我注意到这个应用程序对应的 w3wp IIS worker 服务的内存使用率很高(800 MB,有一些波动)。
我正在尝试诊断问题并尝试了以下方法:
我在 IIS 级别禁用了网站的输出页面缓存,然后回收了应用程序池。这会导致 w3wp 进程重新启动。然后,此过程的内存使用量慢慢上升到大约 800 MB,大约需要 30 秒。目前没有正在处理的页面请求。当我从 IIS 重新启动网站时,进程的内存大小不会改变。
我已尝试从 VS 2010 运行应用程序的调试副本,内存使用没有问题。
我的一些想法/问题是:
这个问题与网站代码有关吗? - 鉴于在发送/处理任何页面请求之前内存迅速增加,我认为这不是代码问题?
在 MVC 中构建的应用程序没有处理写入其中的缓存。
该网站使用实时数据显示,它定期使用 ajax 请求,并且通常长时间保持“打开”状态。
为什么在应用程序被回收并且没有发送用户请求后,内存使用量会猛增?这是因为它正在将旧的缓存信息从磁盘加载到它的内存中吗?
应用程序不会崩溃,我只是关心内存使用情况,它不是一个很大的网站...
任何有助于解决这个问题的想法/帮助将不胜感激。
【问题讨论】: