我们有一个.NET webapi应用程序(带有服务自动启动提供程序)。w3wp从一天到另一天的高内存使用量
该应用程序是由我们的buildserver建,输出部署到多个服务器和应用程序的请求通过负载均衡器路由。
该网站已经运行好几个月了。几天前,我们注意到应用程序池使用的内存比前一天多出3倍,在3台服务器中有2台。
,现在使用更多的内存比其他的服务器就是这么做的,即使我们IISRESET,重新启动服务器等。applicationpool被启动后比其他的分配马上3倍更多的内存。
现在到了超怪异的东西....
要了解被关押了什么在内存,I“附加”一个dotTrace探查器(遥控器,使用remoteagent.exe)到一个服务器。池似乎回收,一旦它启动,它不再分配3倍的内存(所以内存快照是无用的)。我从工作进程中“分离”了剖析器,发现应用程序池不再使用3x内存。我重新启动了服务器,并且仍然没有使用3x内存。
因此...似乎只是将探查器连接到w3wp进程,以一种持久的方式解决了我的问题,因为它仍然在iisreset和重新启动后使用“低内存使用情况”。
试图在服务器#2遭遇了同样的问题,同样的程序,也固定我的问题。
好像dotTrace做这样神奇的东西我workerprocesses :)?
任何人都可以找出原因吗?我有更多的服务器(在其他环境中)有同样的问题,但我想知道这个问题的根源。