IIS 快速请求的执行时间延长了 4 倍

发布于 2024-10-14 01:33:41 字数 925 浏览 9 评论 0原文

我已将在 Windows 7 上运行的 WCAT 结果(相同的脚本)上传到 ts:在 zip 中包含 XSL。对不起。

以下是我注意到的内容:

  1. IIS Express 的每秒请求数和服务总事务数比普通 IIS 略高。
  2. IIS Express 一次最多执行 100 个请求,而 Windows 7 上的普通 IIS 按照设计限制为 10 个。
  3. IIS Express 使用的 CPU 高出 30%,可能是因为它一次处理的额外请求。
  4. 但平均而言,Express 请求需要更长的时间才能完成……长达 4 倍。请参阅请求执行时间性能计数器和时间分析(第一个和最后一个字节)。

IIS Express 之所以能够在服务的总请求数上击败 IIS,是因为它一次可以处理更多的请求!

关于所发生情况的理论:

  1. 即使没有跟踪设置,IIS Express 也会将每个请求打印到命令行窗口,这一事实是否会减慢速度?
  2. 我还注意到在 IIS Express applicationhost.config 中注册的许多其他模块不在 IIS applicationhost.config 中。那么额外的调试/跟踪模块是否会导致问题?
  3. 我注意到 IIS Express 没有 FileCacheHTTPCache 模块。这可能就是原因吗?

我希望 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:

  1. IIS Express has slighter higher requests per second, and total transactions served than normal IIS.
  2. IIS Express is executing up to 100 requests at a time, while normal IIS on windows 7 is limited to 10 as designed.
  3. IIS express is using 30% higher cpu, probably because of additional requests it handles at a time.
  4. 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:

  1. Could the fact that IIS express is printing each request to command line window even with trace set none be slowing it down?
  2. I also noticed a lot of additional modules registered in IIS express applicationhost.config that are not in IIS applicationhost.config. Could then extra debugging/tracing modules be causing the problem?
  3. I notice IIS express does not have FileCache and HTTPCache 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一腔孤↑勇 2024-10-21 01:33:45

连接点: http://forums.iis.net/p/1175052/ 1969390.aspx#1969390。同样的问题也在iis.net论坛上被问到,并引发了热烈的讨论。

需要澄清的是,IIS Express 主要是作为一种 Web 开发工具,提供 Cassini 开发服务器功能的超集。性能并不是此版本的首要任务。确实,IIS Express 没有连接限制,但 XP 兼容性是有代价的。

  • 对于主要包含动态内容的应用程序,IIS Express 的开销应该是可以接受的。
  • 对于具有大量静态内容的网站,缺少 http.sys 内核缓存和用户模式缓存将产生巨大的性能差异

尝试将 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.

  • For the applications with mostly dynamic content, the overhead of IIS express should be acceptable.
  • for websites with lot of static content, the lack of http.sys kernel caching and also user mode caching will make a huge perf difference

Try to redirect the stdout to nul. It will boost your perf by a little bit.

四叶草在未来唯美盛开 2024-10-21 01:33:43

默认情况下,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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文