繁体   English   中英

IIS 7工作进程瓶颈,大量等待应用程序池ASP.NET 3.5 + 2.0下的请求

[英]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 RequestExecute 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并开始追踪罪魁祸首。

苔丝有一系列关于如何利用这些工具产生巨大影响的实验室:

.NET调试演示 - 信息和设置说明

如果你能够,那么你也可以将一个探查器附加到应用程序(例如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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM