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 Queues\ArriveRate。

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.Net\Framework64\v2.0.50727\CONFIG\machine.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。)

高并发下,调整IIS相关的设置,以提高服务器并发量的更多相关文章

  1. 高并发下的 Nginx 优化与负载均衡

    高并发下的 Nginx 优化   英文原文:Optimizing Nginx for High Traffic Loads 过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. ...

  2. 高并发下的Nginx优化

    高并发下的Nginx优化 2014-08-08 13:30 mood Nginx    过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. 很多Nginx新用户是从Apach ...

  3. UILabel的相关属性设置

    在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...

  4. MySQL 连接数相关参数设置

    当我们的数据库服务器遇到如下的错误:ERROR: Too many connections 一种可能性就是我们的压力确实很大,需要增加服务器硬件资源或者增加数据库服务器.但是大多数情况下是我们的连接数 ...

  5. iOS开发笔记--UILabel的相关属性设置

    在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...

  6. springboot~高并发下耗时操作的实现

    高并发下的耗时操作 高并发下,就是请求在一个时间点比较多时,很多写的请求打过来时,你的服务器承受很大的压力,当你的一个请求处理时间长时,这些请求将会把你的服务器线程耗尽,即你的主线程池里的线程将不会再 ...

  7. 高并发下redis

    1.================================================================================================== ...

  8. OpenSIPS 2.4.2 高并发下,日志丢失怎么办

      问题年年有,今年特别多.最近公司对呼叫中心平台做了大幅度重构,基于OpenSIPS实现的会话管理服务,在高并发压测过程中,发现OpenSIPS的日志居然出现丢失的情况,简直让我食不知味,困惑不已. ...

  9. Linux Limit相关内容设置大全(值得收藏)

    目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/目录 二. ulimi ...

随机推荐

  1. vijos P1911 珠心算测验

    #include<iostream> using namespace std; int main() { int n; int sum = 0; int num[200]; cin > ...

  2. [leetcode] 392. Is Subsequence (Medium)

    原题 判断子序列 /** * @param {string} s * @param {string} t * @return {boolean} */ var isSubsequence = func ...

  3. cocos creator 小游戏区域截图功能实现

    截图是游戏中非常常见的一个功能,在cocos中可以通过摄像机和 RenderTexture 可以快速实现一个截图功能,具体API可参考:https://docs.cocos.com/creator/m ...

  4. 【SVN】SVN使用教程总结

    SVN使用教程总结 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subve ...

  5. Linux下gcc编译器的使用

    例:gcc -x -g c helloC -o firstC -x:改变gcc的行为.(注:如果是.c文件则不用加-x) -x c :编译c程序 -x c++ :编译c++程序 -x java :编译 ...

  6. linux初学者-磁盘配额篇

    linux初学者-磁盘配额篇 在使用磁盘时,只要有权限,不管什么用户都可以在其中写入数据,但是如果是多人在一个磁盘中写入数据,就会出现争议,如果一个用户将磁盘空间用完,那么其他人无法再使用.如下图所示 ...

  7. Python基础总结之第四天开始【格式化‘字符串’】(新手可相互督促)

    年薪20万... 字符串格式化: 先看小案例-------: a = 'hello,my name is %s,I like %s.'%('XiaoHong','football') #在字符串中,[ ...

  8. linux字符设备驱动中内核如何调用驱动入口函数 一点记录

    /* 内核如何调用驱动入口函数 ? *//* 答: 使用module_init()函数,module_init()函数定义一个结构体,这个结构体里面有一个函数指针,指向first_drv_init() ...

  9. git_stats安装及使用

    git_stats是仓库代码统计工具,今天我们要求用git_stats工具做项目的代码统计,也是一步一坑的找到了一些方法,在这里记录一下 一.安装 git_stats可以在windows和linux使 ...

  10. golang const 内itoa 用法详解及优劣分析

    首先itoa 是什么 const 内的 iota是golang语言的常量计数器,只能在常量的表达式中使用,,即const内. iota在const关键字出现时将被重置为0(const内部的第一行之前) ...