IIS 快速请求的执行时间延长了 4 倍
我已将在 Windows 7 上运行的 WCAT 结果(相同的脚本)上传到 ts:在 zip 中包含 XSL。对不起。
以下是我注意到的内容:
- IIS Express 的每秒请求数和服务总事务数比普通 IIS 略高。
- IIS Express 一次最多执行 100 个请求,而 Windows 7 上的普通 IIS 按照设计限制为 10 个。
- IIS Express 使用的 CPU 高出 30%,可能是因为它一次处理的额外请求。
- 但平均而言,Express 请求需要更长的时间才能完成……长达 4 倍。请参阅请求执行时间性能计数器和时间分析(第一个和最后一个字节)。
IIS Express 之所以能够在服务的总请求数上击败 IIS,是因为它一次可以处理更多的请求!
关于所发生情况的理论:
- 即使没有跟踪设置,IIS Express 也会将每个请求打印到命令行窗口,这一事实是否会减慢速度?
- 我还注意到在 IIS Express
applicationhost.config
中注册的许多其他模块不在 IISapplicationhost.config
中。那么额外的调试/跟踪模块是否会导致问题? - 我注意到 IIS Express 没有
FileCache
和HTTPCache
模块。这可能就是原因吗?
我希望 ASP.NET 专家能够澄清如果 IIS Express 不受限制,这些结果是如何可能的。
I have uploaded the WCAT results run on windows 7, same script, to
ts: included XSL in zip. sorry.
Here is what I have noticed:
- IIS Express has slighter higher requests per second, and total transactions served than normal IIS.
- IIS Express is executing up to 100 requests at a time, while normal IIS on windows 7 is limited to 10 as designed.
- IIS express is using 30% higher cpu, probably because of additional requests it handles at a time.
- But on average Express requests take much longer to complete..up to 4 times longer. see Request Execution Time performance counter and time analysis (first and last byte).
IIS Express is only able to beat IIS in total requests served because it can handle more requests at a time!
Theories on what's happening:
- Could the fact that IIS express is printing each request to command line window even with trace set none be slowing it down?
- I also noticed a lot of additional modules registered in IIS express
applicationhost.config
that are not in IISapplicationhost.config
. Could then extra debugging/tracing modules be causing the problem? - I notice IIS express does not have
FileCache
andHTTPCache
modules. Could that be why?
I'm hoping asp.net experts can clarify how these results are possible if IIS express is not limited.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
连接点: http://forums.iis.net/p/1175052/ 1969390.aspx#1969390。同样的问题也在iis.net论坛上被问到,并引发了热烈的讨论。
需要澄清的是,IIS Express 主要是作为一种 Web 开发工具,提供 Cassini 开发服务器功能的超集。性能并不是此版本的首要任务。确实,IIS Express 没有连接限制,但 XP 兼容性是有代价的。
尝试将 stdout 重定向到 nul。它会稍微提高你的表现。
Connecting the dots: http://forums.iis.net/p/1175052/1969390.aspx#1969390. Same question was asked on the iis.net forum as well, and it trigerred lively discussion.
Just to clarify, the IIS Express is primarily meant as a web development tool that provides a superset of functionality over the Cassini development server. Performance was not top priority for this release. It is true that IIS Express doesn't have connection limit, but the XP compatibility came at cost.
Try to redirect the stdout to nul. It will boost your perf by a little bit.
默认情况下,IIS Express 启用失败请求跟踪。如果禁用它,您可能会看到一些性能提升。 (为applicationhost.config中的traceFailedRequestsLogging元素设置enabled =“false”)
By default failed request tracing is enabled for IIS Express. You may see some performance gain if you disable it. (set enabled="false" for traceFailedRequestsLogging element in applicationhost.config)