在过去的 12 个月左右的时间里,我们一直在努力解决这个问题。我们认为,这可能是由于一两个应用程序泄漏内存,或者是多年来使用传统 ASP 编程最终积累了大量泄漏。我们已经开始转换到 ASP.NET,但我们仍然有大量使用传统 ASP 的应用程序。
我们尝试过根据 CPU 和内存使用情况更改 IIS 的重启方式,并尝试清理一些进程。我们安装了多个分析工具,以便能够准确追踪问题的来源,但毫无效果。
就在今天,我们终于找到了一条更详细的错误消息,“在 W3WP 中线程 72 拥有的 asp!g 模板缓存 +88 处检测到可能存在阻塞或泄漏的临界区”。它还指出“ASP.DLL 当前在 ASP 模板缓存管理器上持有临界区锁...”。
(查看大图。
那么,是否有任何工具可以帮助追踪泄漏的来源?或者是否有更好的方法在冻结整个 Web 进程之前重新启动它?
我很感谢您的时间!