在过去的一周里,我的一个运行在IIS上的web应用程序每天都有一次随机挂起,我一直遇到麻烦,我不得不回收应用程序池,让它重新焕发生机。CPU和内存似乎正常。
当我查看IIS管理器中worker processes部分中的活动线程时,我可以看到线程在累积,就好像它们被卡住了一样,当它挂起时,25+线程周围就有了,当运行ok时,在任何一点上都有3-6。
我猜想这可能是由于我的C# web应用程序上的代码更改,但我不知道它在哪里/它是什么,只根据我能记住的东西做了一些小的更改。
上个星期,我真的很努力地用WinDbg & dotTrace这样的工具来诊断,看看我是否能找到任何显而易见的东西,但我现在有点头脑发热。
我可以看到,有许多线程存在超时错误,连接到我的NoSql数据库(RavenDb),但是我认为这是一个红色链接,并且是由于IIS中阻塞的线程,因为我可以从另一个IIS应用程序连接到同一个数据库,以及使用数据库管理工具来管理/查询数据库。
我有迷你转储和dotTrace快照可玩。
以下是WinDbg:https://gist.github.com/phinett/7901d82fa526696d3c92上"~*e!clr堆栈“的结果
对于我应该找出什么来追查罪犯,有什么帮助/想法吗?如果需要的话,我很乐意提供对小型垃圾场的访问。
谢谢!
发布于 2015-10-13 23:36:24
从DebugDiag v2更新1开始,强制进程转储,然后运行挂起分析,可能要简单得多,速度也快得多。
https://serverfault.com/questions/728728
复制相似问题