我们将我们的web服务器从Windows 2003升级到Windows 2012 R2。问题中的web应用程序运行在ASP.NET 4.0上。web应用程序反过来又与第三方Web通信。
升级后不久,Web延迟就会增加,从而导致显著的超时。我怀疑在IIS 8.5上,允许的并发请求数量增加,导致Web API无法处理的吞吐量增加。然而:
当我们回滚升级,延迟后不久就下降了。这不太可能是巧合,因此,由于其他一切保持不变,Windows2012 R2或IIS8.5必然存在一些影响Web的内在因素。第三方Web开发人员证实,他们的空间没有任何变化,不幸的是,我无法收集任何其他信息。
我检查了版本6和8.5的IIS日志:每秒、分钟和小时的平均(和中位数)请求表明在IIS 8.5上处理的请求更多(我使用Log Parser Studio来分析日志)。然而,没有任何迹象表明情况应该是这样的。有人有洞察力或建议吗?如果有控制这一点的设置,那么现在我希望web应用程序在Windows 2003和2012年R2上的行为是相同的。
发布于 2016-03-13 19:33:23
由于每个新请求都是在线程池中的新工作线程上处理的,因此我查询线程池限制以验证自动配置的设置是否匹配(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>
结果如下(虚拟机有两个核心):
这意味着较新的设置能够并发处理更多的请求。
https://stackoverflow.com/questions/33709657
复制相似问题