高并发下,调整IIS相关的设置,以提高服务器并发量
1.修改 IIS 队列长度
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 中更改队列长度设置
单击 “开始”,指向 “管理工具”,然后单击 “Internet 信息服务(IIS)管理器”。
在 IIS 管理器中,展开 IIS 服务器的名称,然后单击 “应用程序池”。
在 “应用程序池” 窗格中,右键单击 Communicator Web Access 应用程序池,然后单击 “高级设置”。
在 “高级设置” 对话框的 “常规” 下,单击 “队列长度”,然后键入 Communicator Web Access 部署中的最多并发用户数的 1.5 倍的值。
单击 “确定”。
在 IIS 6.0 中更改队列长度设置
单击 “开始”,单击 “所有程序”,指向 “管理工具”,然后单击 “Internet 信息服务(IIS)管理器”。
在 IIS 管理器中,展开 “站点” 节点,右键单击 Communicator Web Access 应用程序池,然后单击 “属性”。
在 “属性” 对话框中,单击 “性能” 选项卡。
在 “请求队列限制” 下,单击 “核心请求队列限制为(请求次数)”,然后键入 Communicator Web Access 部署中的最多并发用户数的 1.5 倍的值。
单击 “确定”。
监测方法:Windows性能监视器中监测Http Service Request Queues\ArriveRate。
2.修改 ASP.NET 请求队列的限制
查询 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 请求队列的限制
单击“开始”,然后单击“运行”****。
在“运行”对话框中,键入 notepad %systemroot%\Microsoft.Net\Framework64\v2.0.50727\CONFIG\machine.config,然后单击“确定”。
找到如下所示的 processModel 元素:
<processModel autoConfig="true" />将 processModel 元素替换为以下值:
<processModel enable="true" requestQueueLimit="15000" />保存并关闭 Machine.config 文件。
对于 Windows Server 2008,在“运行”****对话框中,键入 appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:<#of users * 1.5>。
3.调整应用程序池最大工作进程数
(适用于无状态的应用,如webapi。)
高并发下,调整IIS相关的设置,以提高服务器并发量的更多相关文章
- 高并发下的 Nginx 优化与负载均衡
高并发下的 Nginx 优化 英文原文:Optimizing Nginx for High Traffic Loads 过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. ...
- 高并发下的Nginx优化
高并发下的Nginx优化 2014-08-08 13:30 mood Nginx 过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. 很多Nginx新用户是从Apach ...
- UILabel的相关属性设置
在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...
- MySQL 连接数相关参数设置
当我们的数据库服务器遇到如下的错误:ERROR: Too many connections 一种可能性就是我们的压力确实很大,需要增加服务器硬件资源或者增加数据库服务器.但是大多数情况下是我们的连接数 ...
- iOS开发笔记--UILabel的相关属性设置
在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...
- springboot~高并发下耗时操作的实现
高并发下的耗时操作 高并发下,就是请求在一个时间点比较多时,很多写的请求打过来时,你的服务器承受很大的压力,当你的一个请求处理时间长时,这些请求将会把你的服务器线程耗尽,即你的主线程池里的线程将不会再 ...
- 高并发下redis
1.================================================================================================== ...
- OpenSIPS 2.4.2 高并发下,日志丢失怎么办
问题年年有,今年特别多.最近公司对呼叫中心平台做了大幅度重构,基于OpenSIPS实现的会话管理服务,在高并发压测过程中,发现OpenSIPS的日志居然出现丢失的情况,简直让我食不知味,困惑不已. ...
- Linux Limit相关内容设置大全(值得收藏)
目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/目录 二. ulimi ...
随机推荐
- NameNode故障处理方法
NameNode故障处理方法 简述 NameNode故障后,可以通过下列两种方式进行恢复数据: 方法一(手动):将SecondaryNameNode文件下的数据复制到NameNode中 方法二(程序) ...
- linux基础命令期末考试总结
1.关闭防火墙:service iptables stop 2.启动防火墙:service iptables start 3.mount命令:挂载某一设备使之成为某个目录名称 4.NFS服务:linu ...
- Android Studio电脑不支持HAXM的解决办法
Intel HAXM is required to run this AVD. Your CPU does not support required features (VT-x or SVM). U ...
- 【Arduino】37种传感器系列实验(4)---振动传感器模块
---恢复内容开始--- 37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为 ...
- 基于ReentrantLock的非公平锁理解AQS
AQS AQS概述 AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我 ...
- 【MySQL】java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB3' for column
问题原因: 输入内容包含特殊字符,MySQL 中的列不支持. 解决方法 多数是修改 MySQL 的数据库和表结构,CHARSET 改为 utf8mb4,但本人测试还是不能传入 emoji. 后来在代码 ...
- Confluence未授权模板注入/代码执行(CVE-2019-3396)
--- title: Confluence未授权模板注入/代码执行(CVE-2019-3396) tags: [poc,cve] num :g7y12 --- # 简介 --- Confluence是 ...
- Spring的依赖注入和管理Bean
采用Spring管理Bean和依赖注入 1.实例化spring容器 和 从容器获取Bean对象 实例化Spring容器常用的两种方式: 方法一: 在类路径下寻找配置文件来实例化容器 [推荐使用] Ap ...
- .net core 实现基于 cron 表达式的任务调度
.net core 实现基于 cron 表达式的任务调度 Intro 上次我们实现了一个简单的基于 Timer 的定时任务,详细信息可以看这篇文章. 但是使用过程中慢慢发现这种方式可能并不太合适,有些 ...
- java高并发系列 - 第22天:java中底层工具类Unsafe,高手必须要了解
这是java高并发系列第22篇文章,文章基于jdk1.8环境. 本文主要内容 基本介绍. 通过反射获取Unsafe实例 Unsafe中的CAS操作 Unsafe中原子操作相关方法介绍 Unsafe中线 ...