IIS 6.0挂起,然后大约3分钟后应用程序池重置。这是一个ASP站点,重置后它可以运行几秒钟,然后挂起。此实例的IIS 6上的所有其他应用程序池正常运行。此计算机似乎没有任何性能问题。我使用IIS Debug Diagnostics进行了内存转储,这是渲染分析。有人可以请一些支持吗?
分析摘要类型说明建议警告 检测到可能阻塞或泄漏的关键部分 ntdll!LdrpLoaderLock由24号线程拥有 w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual Dump.dmp
此锁的影响
执行ASP请求的66.67%被阻止
22.58%的线程被阻止
(主题6 22 23 27 28 29 30)
以下功能正在尝试进入此关键部分
NTDLL!LdrLockLoaderLock + 133
NTDLL!LdrpGetProcedureAddress + 128
NTDLL!LdrpInitializeThread + 68
以下模块涉及此关键部分
来自Microsoft Corporation的C:\ WINDOWS \ system32 \ ntdll.dll 动态链接库(DLL)的入口点函数应该执行 只有简单的初始化或终止任务,不过这个线程 (24)正在使用LoadLibrary API加载一个DLL。按照指导 在DllMain的MSDN文档中,以避免访问冲突和 加载和卸载库时出现死锁。
请跟进供应商Microsoft Corporation C:\ WINDOWS \ SYSTEM32 \ mscoree.dll中 警告在线程8中拥有的asp!g_ViperReqMgr + 2c中检测到可能阻塞或泄漏的关键部分 w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual Dump.dmp
此锁的影响
6.45%的线程被阻止
(主题7 9)
以下功能正在尝试进入此关键部分
ASP!CViperActivity :: PostAsyncRequest + 72
以下模块涉及此关键部分
来自Microsoft Corporation的\?\ C:\ WINDOWS \ system32 \ inetsrv \ asp.dll 确定了以下供应商,以便根据root进行跟进 原因分析
Microsoft Corporation
请跟进上面提到的供应商考虑一下 以下方法确定此关键部分的根本原因 问题:在Application Verifier下载中启用“锁定检查” 来自以下URL的Application Verifier:
Microsoft Application Verifier通过运行以下命令为此进程启用“锁定检查”:
Appverif.exe -enable locks -for w3wp.exe有关Application Verifier的更多信息,请参阅以下文档:
使用AppVerifier测试应用程序使用DebugDiag崩溃规则来监视应用程序的异常
答案 0 :(得分:1)
您的ASP Classic App失败,因为所有线程都被阻止。我建议在Web服务器上运行Process Monitor以查看在哪里处理了哪些句柄。我没有看到堆栈跟踪中有很多重复,表明特定dll存在问题。
答案 1 :(得分:0)
鉴于提供的信息,它听起来像应用程序本身而不是IIS的问题。您是否确定没有任何疯狂的紧密循环或过多/极其繁重的数据库负载,可能是一些PInvoke调用或者只是一些异常的webapp会杀死应用程序/运行时并导致池死亡?
答案 2 :(得分:0)
我认为你应该尝试一些工具,比如fiddler和其他东西。你可以确切知道什么是花时间加载你的网站。从日志中可以看出应用程序本身存在问题。因此,不要使用过多的循环,从db缓存数据并使用,也不要在会话或应用程序中存储大对象。
答案 3 :(得分:0)
我希望你不要只发布你的生产密码兄弟:)。
我同意Quintin,似乎ADO提供商中的某些东西导致了失败。