IIS

1.修改 IIS 队列长度

  参考资料:https://docs.microsoft.com/zh-cn/previous-versions/office/communications-server/dd441171%28v%3doffice.13%29

  Internet Information Services (IIS) 限制了在任何给定时间可在队列中等待的应用程序池请求的最大数量。如果达到此限制,则所有新请求都将被拒绝,而且用户将收到错误消息“503 – 服务不可用”。默认情况下,IIS 将队列长度设置为 1,000 个请求。该默认值可能太低,因为如果队列长度为 1,000,Communicator Web Access(2007 R2 发行版)将只能处理大约 650 个并发用户,此后将开始拒绝新用户。

  为帮助确保 Communicator Web Access 服务的可用性,建议将 IIS 队列长度值设置为预期最多用户数的 1.5 倍。例如,假定您预期在给定时间最多有 2,000 名用户登录到 Communicator Web Access。在此情况下,应将队列长度设置为 3,000(即 2,000 名用户的 1.5 倍)。

  在 IIS 7.0 中更改队列长度设置 

  1. 单击 “开始”,指向 “管理工具”,然后单击 “Internet 信息服务(IIS)管理器”。

  2. 在 IIS 管理器中,展开 IIS 服务器的名称,然后单击 “应用程序池”。

  3. 在 “应用程序池” 窗格中,右键单击 Communicator Web Access 应用程序池,然后单击 “高级设置”。

  4. 在 “高级设置” 对话框的 “常规” 下,单击 “队列长度”,然后键入 Communicator Web Access 部署中的最多并发用户数的 1.5 倍的值。

  5. 单击 “确定”。

  在 IIS 6.0 中更改队列长度设置 

  1. 单击 “开始”,单击 “所有程序”,指向 “管理工具”,然后单击 “Internet 信息服务(IIS)管理器”。

  2. 在 IIS 管理器中,展开 “站点” 节点,右键单击 Communicator Web Access 应用程序池,然后单击 “属性”。

  3. 在 “属性” 对话框中,单击 “性能” 选项卡。

  4. 在 “请求队列限制” 下,单击 “核心请求队列限制为(请求次数)”,然后键入 Communicator Web Access 部署中的最多并发用户数的 1.5 倍的值。

  5. 单击 “确定”。

  监测方法:Windows性能监视器中监测Http Service Request QueuesArriveRate。

2.修改 ASP.NET 请求队列的限制

  参考资料:https://docs.microsoft.com/zh-cn/previous-versions/office/communications-server/dd425294%28v%3doffice.13%29

  查询 ASP.NET 时,服务的请求将通过 Internet Information Services (IIS) 和 ASP.NET 工作进程之间的管道来传递,并且在该管道内排队。(ASP.NET 在自己的进程中运行 - 这一点不同于传统的 ASP,传统的 ASP 与 IIS 服务在同一个进程中运行。)默认情况下,此队列最多可以包含 5,000 个请求。如果请求超过 5,000 个,则用户将收到“503 - 服务不可用”错误,并被拒绝服务。

  尽管默认值对于相对数目较少的 Communicator Web Access(2007 R2 发行版)用户来说足够了,但随着用户数接近 4,500,就很容易超过请求队列的限制。由于这个原因,您可能需要将请求队列的限制增加到 15,000。如果将请求队列的限制设置为 15,000,就能够提供足以处理所有客户端请求的大队列了。此外,如果服务器在 Windows Server 2008 上运行,则您需要配置 appConcurrentRequestLimit 设置以支持 5,000 以上的连接。

  修改 ASP.NET 请求队列的限制 

  1. 单击“开始”,然后单击“运行”****。

  2. 在“运行”对话框中,键入 notepad %systemroot%Microsoft.NetFramework64v2.0.50727CONFIGmachine.config,然后单击“确定”。

  3. 找到如下所示的 processModel 元素:<processModel autoConfig="true" />

  4. 将 processModel 元素替换为以下值:<processModel enable="true" requestQueueLimit="15000" />

  5. 保存并关闭 Machine.config 文件。

  6. 对于 Windows Server 2008,在“运行”****对话框中,键入 appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:<#of users * 1.5>。

3.调整应用程序池最大工作进程数

  (适用于无状态的应用,如webapi。)

其他参考:

https://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html

https://www.cnblogs.com/dudu/archive/2013/06/08/iis_webserver_settings.html

https://www.cnblogs.com/cmt/p/3695594.html

https://www.cnblogs.com/dudu/p/3762672.html

https://www.cnblogs.com/dudu/p/3761659.html

原文地址:https://www.cnblogs.com/fmp/p/11417984.html