为什么w3wp内存不断增加?

时间:2017-05-09 18:10:36

标签: azure azure-web-sites w3wp

我在一个有3GB内存的中型实例上。当我启动webapp时,w3wp进程以80MB开始。我注意到这个时间越长越好......现在,当它为570MB并且网站运行了5天时,我对该进程进行了内存转储,以查看是否有任何正在消耗的.NET对象很多但发现最大的对象是18MB,这是一组字符串对象。

我没有使用任何缓存对象,因为我正在使用redis进行会话存储,实际上转储显示缓存中没有任何内容。

现在我的问题是以下......我在想,因为我有3GB内存,IIS会在内存中保留一些页面(缓存),所以每当有请求时网站都会更快,这就是内存保留的原因越来越多。我担心的是,即使我在使用时处理所有EntityFramework对象,或者需要处理任何其他适当的流,我也会以某种方式出现内存泄漏。当达到某个特定阈值时,我假设内存中的旧缓存数据被删除并包含新页面。我说得对吗?

我想指出的是,过去我曾经在一个小型实例上,%从未超过70%,现在我处于中等实例,内存已经是60%....非常奇怪相同的代码。

如果有人想帮助我,我可以发送内存转储。

1 个答案:

答案 0 :(得分:2)

有一个问题影响了少量的网络应用程序,我们正在努力修补。

如果您遇到这个特定问题,有一种解决方法:

  • 转到您的应用的Kudu控制台(例如https:// {yourapp} .scm.azurewebsites.net / DebugConsole)
  • 进入LogFiles文件夹。如果您遇到此问题,则会有一个非常大的eventlog.xml文件
  • 通过运行attrib +r eventlog.xml
  • 使该文件只读
  • (可选)重新启动Web App,以便获得干净的w3wp
  • 监控使用情况是否仍然上升

一个缺点是你不会再生成那些事件,但在大多数情况下它们是不需要的(这是暂时的)。

问题已经确定,但我们尚未部署ETA。