IIS 10.0技术咨询:查看排队请求、调整并发数及设置请求超时
IIS并发请求相关问题解答
1. 查看等待中的请求
- 性能监视器(PerfMon):打开性能监视器,添加
Web Service或ASP.NET分类下的Wait Queue Length(等待队列长度)、Current Connections(当前总连接数)计数器,可实时查看等待请求的数量;若要聚焦应用程序池维度,选择WAS Worker Process下的Request Queue Size计数器。 - 命令行工具:以管理员权限打开命令提示符,执行命令
appcmd list requests,会列出所有正在处理及等待队列中的请求,包含请求路径、状态、所属应用池等详细信息。 - 事件查看器:若请求因等待超时触发异常,相关事件会记录在
Windows日志>应用程序中,可用于回溯等待请求的异常情况。
2. 提高并发请求限制
需从多个维度调整,根据服务器性能逐步优化:
- 网站级别:打开IIS管理器,找到目标网站右键选择
高级设置,修改连接限制中的最大并发连接数(若当前设为10,可根据服务器负载调高至100、500等合适数值)。 - 应用程序池级别:
- 打开目标应用程序池的
高级设置,调整队列长度(默认1000,可根据服务器内存适当调高); - 若服务器为多核CPU,可设置
最大工作进程数(即Web Garden模式,建议设为CPU核心数),提升并发处理能力; - 调整
CPU选项中的限制参数,避免单个进程占用过高CPU导致并发受限。
- 打开目标应用程序池的
- 系统级别(http.sys):修改注册表
HKLM\System\CurrentControlSet\Services\HTTP\Parameters下的MaxConnections值(Windows Server 2016+默认上限为16384),修改后需重启HTTP服务(执行命令net stop http && net start http)。 - ASP.NET应用额外设置:若为ASP.NET项目,在
web.config中添加或修改配置:
调整并发请求数上限。<httpRuntime executionTimeout="3600" maxConcurrentRequestsPerCPU="500" />
3. 限制单个请求运行时长
可通过以下方式实现:
- ASP.NET应用:在项目的
web.config中配置<httpRuntime executionTimeout="60" />(单位:秒),超过该时长的请求会被强制终止,注意此配置仅在debug="false"时生效。 - 应用程序池设置:打开应用程序池的
高级设置,调整进程模型中的ping最大响应时间(默认90秒),若工作进程无响应超过该时长会被回收;另外关闭时间限制(默认90秒)是进程关闭前等待请求完成的时长,也可间接限制请求运行时间。 - IIS请求筛选:在网站的
请求筛选功能中选择编辑功能设置,修改请求超时(单位:秒),超过该时间的连接会被断开。
内容的提问来源于stack exchange,提问作者cmill
相关产品推荐
相关产品推荐

