压力测试报出503错误---ASP.NET支持大并发的相关配置
项目反馈报出503错误,需要收集性能数据如下:
1、Windows性能监视器,该应用程序池进程的线程和处理队列
2、问题重现时的进程dump
这是请求到达IIS后遇到的第一个队列,HTTP.sys收到请求后会将请求放入对应的应用程序池队列,这样可以减少上下文的切换。需要注意的是应用程序池队列虽然是给w3wp进程用的,但它存在于http.sys的内存区(http.sys是一个运行于kernel-mode的设备驱动程序)。如果把http.sys比作一块网卡,那应用程序池队列相当于网卡的缓冲区。
w3wp从应用程序池队列中取出请求后,接下来就是从CLR线程池中捞出一个CLR线程处理请求,如果池中空无一线,就会将请求放在CLR线程池队列中。
检测两个队列的情况,可以使用Windows性能监视器
Http Service Request Queues\CurrentQueueSize
Http Service Request Queues\ArrivalRate
ASP.NET v4.0.30319\Requests Queued
ASP.NET v4.0.30319\Requests Current
应用程序池(Application Pool –> 高级设置 –> 队列长度)
- General->Queue Length设置为65535(队列长度所支持的最大值,缺省值为1000)
- Recycling->Regular Time Interval设置为0(取消应用程序池固定时间间隔的自动回收,缺省值为1740)
- Process Model->Idle Time-out设置为0(取消应用程序池因为空闲超时而关闭,缺省值为20分钟)
<!-- 调大应用程序池的请求队列 -->
C:\Windows\System32\inetsrv>appcmd set apppool webform -queueLength:65535
<!-- 取消固定时间间隔的回收 -->
C:\Windows\System32\inetsrv>appcmd set apppool webform -recycling.periodicRestart.time:00:00:00
<!-- 设置指定时间点的回收 -->
C:\Windows\System32\inetsrv>appcmd set apppool webform /+recycling.periodicRestart.schedule.[value='04:15:00']
<!-- 取消空闲超时的进程关闭 -->
C:\Windows\System32\inetsrv>appcmd set apppool webform -processModel.idleTimeout:00:00:00
<!-- 开启所有回收事件的日志 -->
C:\Windows\System32\inetsrv>appcmd set apppool webform -recycling.logEventOnRecycle:"Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"
IIS (C:\Windows\System32\inetsrv\config\applicationHost.config)
1、设置命令:
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
2、设置结果:
<!-- IIS并发请求数 -->
<serverRuntime appConcurrentRequestLimit="100000" />
.NET Framework & ASP.NET (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 和 WebAppRoot\web.config)
<!-- .NET Framework 进程模型 配置,最大工作线程(真实的线程数 = 此值 * 逻辑CPU数) -->
<processModel enable="true" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50" />
<!-- ASP.NET 请求处理队列 -->
<httpRuntime appRequestQueueLimit="100000"/>
网络协议
1、将最大连接数设置为10万
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxFieldLength /t REG_DWORD /d 32768
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxRequestBytes /t REG_DWORD /d 32768
2、修改TCP MaxUserPort限制(由默认5000改为65534)
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v MaxUserPort /t REG_DWORD /d 65534
3、 net stop http & net start http & iisreset (干脆直接重启计算机)
压力测试报出503错误---ASP.NET支持大并发的相关配置的更多相关文章
- 推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐一个比较好用的流媒体服务开源代码: ZLMediaKit: 实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求 https://gitee.com/xiahcu/Z ...
- HTTP 错误 500.19 请求的页面的相关配置数据无效 解决办法
"HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法 HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该 ...
- YxdIocp包含有支持大并发的TCP服务组件、HTTP服务组件、UDP服务组件、WebSocket服务组件
Delphi Windows IOCP 通讯模型封装,基于DIOCP.YxdIocp包含有支持大并发的TCP服务组件.HTTP服务组件.UDP服务组件.WebSocket服务组件,和TCP.UDP等基 ...
- "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法
HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 问题"详细错误信息模块 IIS Web Core通知 Begin ...
- win server2012r2上发布网站常见错误 "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法
HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 问题“详细错误信息模块 IIS Web Core通知 BeginReque ...
- PHP的压力测试工具ab.exe 和mpm介绍提高并发数
该工具是apache自带的,可以用它来测试网站的并发量有多大和某个页面的访问时间. 基本用法: 1. 进入CMD,转到apache的bin目录下. 2. 执行命令ab.exe -n 访问的问次数 ...
- 支持https的压力测试工具
支持https的压力测试工具 测试了linux下的几种压力测试工具,发现有些不支持https,先简单总结如下: 一.apache的ab工具 /home/webadm/bin/ab -c 50 -n 1 ...
- LoadRunner压力测试实例
1 LoadRunner 概要介绍... 2 .项目背景介绍... 5 .使用LoadRunner进行负载/ 实施测试... 16 6.1 Memory相关... 22 6.2 Processor相关 ...
- .net的页面在大并发下出现503错误
.net的页面在大并发下偶尔出现503错误 我们开发了一个回调页面,由一个工具负责调用,由于压力非常大,回调页面通过6台服务器负载均衡的: 最近业务系统又再次扩容,回调页面压力成倍增加,在高峰时间段偶 ...
随机推荐
- android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:
* * @param savedInstanceState If the activity is being re-initialized after * previously being shut ...
- iOS AVCaptureSession 小视频开发总结,支持设备旋转
iOS开发中当我们想要自定义相机拍照或摄像界面时,UIImagePickerController无法满足我们的需求,这时候我们可以使用AVFoundation.framework这个framework ...
- Easyui简单布局
1.创建布局 创建布局只需要添加 'easyui-layout' class 到 <div> 标记或者 在整个页面创建布局,即<body class="easyui-lay ...
- UE4 代码编写细节:静态变量
Note:因为在切换关切时,会GC掉所有GameThread线程下的Object类,如果Static是UOBject 请调用AddToRoot函数 当然如果你的UObject子类Object是在自己 ...
- oracle xmltype导入并解析Excel数据 (四)特别说明
1.Excel导出,此处没有给出 2.错误原因在中间表,T_EXCEL_IMPORT_GENERATION,其中errormsg不为空的数据 3,中间表入库过程: 需要自己实现,为一个存储过程,存储过 ...
- 查看外网出口IP && Traceroute
一.CentOS 查看外网出口IP 1---------------- # curl ifconfig.me 2----------------# curl icanhazip.com 二.Trace ...
- 指针数组 null与空字符串
指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便. 在c++中,null表示:对象为空,它是对指针而言的.而""表示:值为空,它是对字符串而言的.
- Maven生命周期
Maven的生命周期抽象了构建的各个步骤,定义了他们的次序,但没有提供实现.Maven设计了插件机制.每个构建步骤都可以绑定一个或多个插件行为,而且Maven为大多数构建步骤编写并绑定了默认插件. M ...
- Html 之div+css布局之css基础
Css是什么 CSS即层叠样式表(Cascading StyleSheet). 在网页制作时采用层叠样式表技术,可以有效地对页面的布局.字体.颜色.背景和其它效果实现更加精确的控制. 只要对相应的代码 ...
- hibernate 中createQuery与createSQLQuery两个用法
hibernate 中createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对象装入list返回后 ...