【发布时间】:2013-03-06 11:36:46
【问题描述】:
我被要求查看一个已经减速到停止点的服务器。服务器上有数百个经典的 ASP 站点在其上运行,在检查一些代码后,我发现有很多实例正在打开、使用 ADODB.Recordset(以及其他)对象,但从未销毁(设置为 Nothing)。我很感激可能还有其他我还没有发现的问题......
原始代码开发人员拒绝承担任何责任,因为他们表示,在网站初始部署后,他们多年来一直运行良好。
很遗憾,一天中没有足够的时间来检查所有网站的所有代码。因此,是否有任何可用的应用程序可以监控内存使用、泄漏或任何可能有助于诊断导致服务器停止的原因?
这些站点最初位于 Win2003、IIS6,但现在已移至 Win2012、IIS8。现在新服务器上也出现了减速,所以我确定这不是硬件故障。
任何建议将不胜感激。请注意,我也用 ASP.NET 对此进行了标记,因为我很欣赏大多数经典的 ASP 开发人员现在都在使用 .NET,但也许可以从他们的经验中提出一些建议......
【问题讨论】:
-
可以将应用程序池配置为在达到某个内存阈值后立即重新启动。这至少会让事情变得有点活泼,但它会不时地重置您的网站。对于调试,请查看 IIS 调试诊断 support.microsoft.com/kb/919790
标签: asp.net iis memory-leaks asp-classic windows-server-2012