我在Window 2008 x64上的IIS 7下托管了一个网站。 IIS以64位模式运行,并且该站点有自己的应用程序池64位等。网站似乎在大多数时间运行正常,然后每小时突然冻结用户请求。他们没有收到超时消息,它只是挂起并且在返回页面之前似乎要等待大约2-3分钟。
我监控了该应用程序池中的工作进程,看到处理器处于非常稳定的25%。记忆很好,并没有以任何可怕的方式增加。
我已经设置了失败请求跟踪,以向我显示请求超过30秒的每个问题,是的,它会记录它但没有错误。
同一台服务器上不同应用程序池中的其他网站在停机期间工作正常。
有关我如何调试此问题的任何建议吗?
答案 0 :(得分:2)
您是否设置了IIS以在给定的时间表上回收该应用程序池上的工作进程?您表明您已对其进行了监控,但您没有说明您是否发现它过度回收,只是分配的内存没有以不合适的方式增加。
IIS日志在这段时间内是否显示异常?尝试像Fiddler这样的应用来帮助调试对Web服务器的请求。
答案 1 :(得分:1)
结果我们使用名为i-Load的控件来调整图像大小。它具有在3小时后删除临时文件的功能。这是锁定IO并导致整个web-app停止。关掉它,现在一切正常。希望这有助于某人。
答案 2 :(得分:0)
应用程序是否依赖于每小时运行一些作业的数据库?
如果数据库负载过重,查询在您的数据库上执行需要更长的时间,因此您的网络应用程序需要更长的时间来处理页面。
答案 3 :(得分:0)
是的,一旦未完成其他进程,IO进程可以阻止应用程序池挂起的线程。因此,请创建另一个IO进程线程,并正确处理取消令牌源。