[英]Upgrading from IIS 6 to 8.5: increased concurrent requests
我们已将Web服务器从Windows Server 2003升级到Windows Server 2012 R2。 有问题的Web应用程序可在ASP.NET 4.0上运行。 Web应用程序又与第三方Web API通信。
升级后不久,Web API延迟增加,从而导致明显的超时。 我怀疑在IIS 8.5上,允许的并发请求数增加了,导致Web API无法处理的吞吐量增加了。 然而:
当我们回滚升级时,延迟很快就下降了。 不太可能是巧合,因此在其他所有条件不变的情况下,Windows 2012 R2或IIS 8.5必须具有某些内在因素,这些因素会影响Web API。 第三方Web API开发人员确认,他们的空间没有任何变化,不幸的是我没有任何其他信息可以收集。
我检查了版本6和8.5的IIS日志:每秒,分钟和小时的平均(和中位数)请求表明在IIS 8.5上有更多的请求正在处理(我使用Log Parser Studio分析日志)。 但是,没有任何迹象表明应该是这种情况。 有没有人有见识或建议? 如果有设置可以控制此设置,那么现在我希望Web应用程序在Windows Server 2003和2012 R2上具有相同的行为。
由于每个新请求都是在线程池中的新工作线程上处理的,因此我查询了线程池限制以验证自动配置的设置是否匹配( aspx
文件):
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<html>
<body>
<div>
<%
int workers;
int io;
ThreadPool.GetMaxThreads(out workers, out io);
%>
The maximum number of worker threads is <%=workers.ToString()%> and
the maximum number of IO threads is <%=io.ToString()%>
</div>
</body>
</html>
结果如下(虚拟机具有2个内核):
这意味着较新的设置能够同时处理更多请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.