【问题标题】:how many concurrent requests settings for IIS 8.5IIS 8.5 的并发请求数量设置
【发布时间】:2017-07-21 18:42:05
【问题描述】:

在 IIS 8.5 中可以执行多少并发请求?

我找不到在 IIS 8.5 中可以执行多少并发请求的正确值

我发现以下 2 个不同的值:

  1. 默认情况下,IIS 8.5 可以根据 aspnet.config 中的MaxConcurrentRequestsPerCPU 设置处理 5000 个并发请求

  2. 在 machine.config 中,默认情况下每个 CPU 的最大连接数为 2。所以如果有 6 核 CPU,那么默认情况下可以并发 12 个请求。

所以我想知道第 1 点是正确的还是第 2 点对于 IIS 8.5 的并发请求是正确的。

【问题讨论】:

    标签: iis concurrency python-requests


    【解决方案1】:

    假设您使用的是 ASP.NET 应用程序,执行的并发请求可能会根据应用程序代码的编写方式和您用于运行应用程序的框架版本(2.0、3.5、4+ 等)而有所不同。此外,您对最大连接和并发请求感到困惑。两者是两件不同的事情。

    更详细的了解请阅读msdn博客ASP.NET Thread Usage on IIS 7.5, IIS 7.0, and IIS 6.0

    总结

    1. MaxConcurrentRequestsPerCPU 内 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 确定每个 CPU 的并发请求数。默认不存在,每个 CPU 的请求数限制为 12

    2. 如果您的 asp.net 应用程序完全编写异步请求,则默认的 MaxConcurrentReqeustsPerCPU 限制 12 会更少,并将此设置 MaxConcurrentRequestsPerCPU 增加到一个非常高的数字。

    3. 在 v4.0 中,MaxConcurrentRequestsPerCPU 默认为 5000

    Maxconnection 是每个 HTTP 协议的设置。任何应用程序只能向任何服务器发出两个并发请求。例如您的浏览器(IE 6,7)只能与您的 www.example.com 建立两个连接。但是为了提高速度,许多浏览器目前同时建立超过 6 个连接(在 chrome、firefox 和 IE 中有所不同)。类似地,当您的服务器应用程序向 web 服务或 rest API 发出请求时,客户端是您的应用程序并且 maxconnection 强制执行对于同一服务器(休息端点),您只能建立两个连接。

    要增加 ASP.NET 应用程序中的最大连接数,请设置 System.Net.ServicePointManager.DefaultConnectionLimit 以编程方式, 从 Application_Start,例如您可以将其设置为 Int32.MaxValue

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      根据这篇文章,在不同的 Windows 版本上运行时也存在限制:

      https://blogs.iis.net/owscott/windows-8-iis-8-concurrent-requests-limit

      最大并发请求数

      Windows 8:

      3 个请求

      Windows 8 专业版

      10 个请求

      Windows RT

      不适用,因为 IIS 不能在 Windows RT 上运行

      我假设(并在 Windows 10 家庭版上进行了测试)在 8 及更高版本上仍然存在此限制。

      【讨论】:

      • 有人知道 Windows 10 的限制是什么吗?我在调用分层 http 服务和超时的单元测试时遇到问题。这些问题最近似乎已经显现。也许这里的许可限制发生了变化?已经在这里问了:stackoverflow.com/questions/33024015/…
      • 同样从那篇文章中,值得注意的是,Windows Server 2003、Windows Server 2008、Windows Server 2008 R2 和 Windows Server 2012 允许无限数量的同时请求。
      【解决方案3】:

      这两个属性与我认为您暗示的不同。

      MaxConcurrentRequestsPerCPU

      控制每个 CPU 处理的传入请求数

      最大连接数

      控制您可以从客户端发起到特定 IP 地址的传出 HTTP 连接的最大数量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 2019-03-18
        • 1970-01-01
        相关资源
        最近更新 更多