[英]IIS 7 worker process bottleneck, large number of awaiting requests under application pool ASP.NET 3.5 + 2.0
我使用的是ASP.NET 2.0,.NET 2.0 Framework和IIS 7.我看到“工作进程”选项下出现了一大堆“请求”。 记录的状态似乎是Authenticate Request
和Execute Request Handles
。
我在C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727
(32位路径和64位路径)中修改了aspnet.config
以包含:
maxConcurrentRequestsPerCPU="50000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="50000"
我修改了C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\CONFIG
(32位和64位路径)中的machine.config
以包含:
autoConfig="false"
maxIoThreads="100"
maxWorkerThreads="100"
minIoThreads="50"
minWorkerThreads="50"
minFreeThreads="176"
minLocalRequestFreeThreads="152"
我仍然遇到这个问题。
该问题表现为Worker Process队列中的大量请求。
发生此问题时,网站的当前连接数显示500。 如果没有出现此问题,我认为我没有看到500多个并发连接。
请求阻止时,Web应用程序会变慢。
当负载在两个池之间传播时,刷新应用程序池会解析一段时间(按预期)。
问题FIXED REQUEST的应用程序池已设置为刷新50000。
注意:我相信.NET 3.5框架使用2.0框架appnet和机器配置文件。
服务器资源(CPU,RAM)未充分发挥潜力。
我可以建议你看一下Tess Ferrandez网站上的材料如果它破了,你应该修复它 。
您要做的是在请求队列中遇到大量请求时以及应用程序开始停止时,使用ADPlus捕获工作进程的转储。
一旦你抓住这个转储,你想把它加载到WinDBG + SOS并开始追踪罪魁祸首。
苔丝有一系列关于如何利用这些工具产生巨大影响的实验室:
如果你能够,那么你也可以将一个探查器附加到应用程序(例如RedGate的Performance Profiler,以尝试发现根本原因。
请关注知识库文章http://support.microsoft.com/kb/821268 ,如果您仍然面临此问题,请更新我。
您还可以在IIS 7中尝试FREB跟踪.http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/
结束将工作进程从1增加到2(Web园)。 问题没有再发生,因为虽然正在使用会议,但在一个月的时间内没有关于最终用户会话问题的报告。
编辑添加:
具体问题与生成非常大的CSV报告有关,这些报告在工作进程服务器端处理,而不是错误,只是它的工作方式。 HTML报告很好,XML转换是通过客户端传递的。
工作进程的分离解决了问题,直到可以将服务器端xml转换为csv文件创建传递给添加进程,从而消除其他用户的任何影响。 在尝试创建CSV报告时,只需要达到我们正在处理的文件大小/行数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.