我有一个挂钩的网络服务器,我已经能够将它隔离到特定的网站实例。我想深入挖掘并隔离导致问题的特定页面/进程..任何提示?
答案 0 :(得分:2)
您可以对该进程进行内存转储,并使用windbg进行搜索。
来自Tess Ferrandez博客的posts on this issue。就像她说的一样。
答案 1 :(得分:0)
您使用的是哪个版本的IIS?一些较高的那些允许分离哪个进程用于处理请求,例如工作进程,您可以通过这种方式隔离更多。我还建议您阅读IIS日志,了解正在处理的请求,使用了多长时间等等。
每个IIS版本都有许多不同的怪癖。真正的低功能只具有启动/停止功能,但是新功能确实为管理员提供了更多的控制和功能,IMO。
答案 2 :(得分:0)
您应该尝试使用分析器来识别占用大部分资源的内容。我已经使用了dotTrace Profiler,但如果预算紧张,这可能会很昂贵。
它允许您确切地查看哪些进程和方法调用使用了请求的最大处理时间,因此您可以隔离资源最密集的操作。
你应该真的能够使用任何探查器来做到这一点,而不仅仅是dotTrace。我碰巧只是特别喜欢这个。
答案 3 :(得分:0)
将您的网络花园设置更改为10或更高。然后在Web服务器上查看CPU和内存利用率。
继续增加网络花园设置,直到应用程序完全响应,平均利用率低于5%,或者实际上最大化了网络服务器的内存。
<强>更新强>
这不是关于诊断,而是关于正确配置IIS服务器。 Web Gardens是IIS最容易被误解的功能之一。通过增加可用线程来处理新请求,您可以在Web服务器级别删除争用的外观,并将其正确放置在它所属的位置。在这种情况下,在您的数据库。而不是掩盖问题,它实际上突出了问题的确切位置。
答案 4 :(得分:0)
这结果是一个SQL问题(sql 2005)。通过使用SQL活动监视器来识别具有Async_network_io等待类型的挂起进程,找到了该解决方案。然后我们运行SQL分析器将其缩小到两个大量查询,这些查询返回了大量的结果。