识别ASP.NET应用程序中的内存问题

Ras*_*sKL 9 memory asp.net iis profiling

我已经运行了一个ASP.NET应用程序,并且在生产盒上它使用了大约450MB RAM,但是它不应该使用相当多,并且它似乎随着时间的推移而增加,所以似乎可能存在泄漏或至少没有正确释放的东西.

我看了一下PerfMon,GC Gen2中有416MB.

任何人都有任何想法,想知道它在记忆中保留了什么?我可以抓住dotTrace/ANTS并以某种方式将它附加到我的IIS(6 - 在Windows Server 2003上) - 或者有更好的方法吗?:-)

谢谢.

kti*_*gle 2

观看Tess 的 TecheEd演讲将是一个好的开始。

她演示了如何使用 adplus 获取消耗大量 RAM 的 ASP.NET 应用程序的转储,然后将该转储加载到 WinDbg 中进行分析。在 WinDbg 中使用 !gcroot 命令查找意外的根并从那里开始。她建议不要存储包含对缓存或会话中其他对象的引用的复杂类型。