我在一个有3GB内存的中型实例上。当我启动webapp时,w3wp进程以80MB开始。我注意到这个时间越长越好......现在,当它为570MB并且网站运行了5天时,我对该进程进行了内存转储,以查看是否有任何正在消耗的.NET对象很多但发现最大的对象是18MB,这是一组字符串对象。
我没有使用任何缓存对象,因为我正在使用redis进行会话存储,实际上转储显示缓存中没有任何内容。
现在我的问题是以下......我在想,因为我有3GB内存,IIS会在内存中保留一些页面(缓存),所以每当有请求时网站都会更快,这就是内存保留的原因越来越多。我担心的是,即使我在使用时处理所有EntityFramework对象,或者需要处理任何其他适当的流,我也会以某种方式出现内存泄漏。当达到某个特定阈值时,我假设内存中的旧缓存数据被删除并包含新页面。我说得对吗?
我想指出的是,过去我曾经在一个小型实例上,%从未超过70%,现在我处于中等实例,内存已经是60%....非常奇怪相同的代码。
如果有人想帮助我,我可以发送内存转储。
答案 0 :(得分:2)
有一个问题影响了少量的网络应用程序,我们正在努力修补。
如果您遇到这个特定问题,有一种解决方法:
eventlog.xml
文件attrib +r eventlog.xml
一个缺点是你不会再生成那些事件,但在大多数情况下它们是不需要的(这是暂时的)。
问题已经确定,但我们尚未部署ETA。