【发布时间】:2014-05-14 13:46:19
【问题描述】:
我无法弄清楚为什么我的 ASP.NET 应用程序无法支持大量并发用户。我正在运行 VS 负载测试工具,我有大量有价值的数据,但很难筛选所有数据。我正在使用 Step 用户负载模式,它逐渐增加虚拟用户的数量,直到达到大约 500。测试似乎没有问题,直到应用程序中的一些未处理的异常导致它崩溃。在崩溃之前,我正在监控的内存、CPU 利用率和所有其他性能计数器都保持不变。但是一旦发生崩溃,我会观察到以下情况:
- ASP.NET/Requests 当前性能计数器峰值
- ASP.NET/Requests Queued perf 计数器略有上升,但仍低于 10
- .NET CLR LocksAndThreads/当前队列长度峰值
在此之后,负载测试永远不会恢复。 (注意:我不是在寻求帮助为什么应用程序崩溃,这是我正在单独处理并将修复的其他问题,但总会有新的应用程序崩溃,我不希望我的应用程序在以下情况下无法恢复加载)。如果我只是在负载测试的中间重新启动 IIS,或者如果我在新重新启动的 IIS 实例上开始负载测试而不让用户数量逐渐增加(只需使用 500 个用户从开始)。
所以我的问题是,为什么 IIS 在启动时无法正确处理大量用户?
- .NET 版本:4
- IIS 版本:7.5
- 站点高级设置 -> 最大带宽:2^32(约 40 亿)
- 站点高级设置 -> 最大并发连接数:2^32(约 40 亿)
- 应用程序池高级设置 -> 队列长度:1000
- 应用程序池高级设置 -> 最大工作进程:1
【问题讨论】:
-
这个应用在什么版本的 IIS 和 .NET 下运行?
-
答案很可能在应用程序池的“高级设置”中,如果您也可以分享这些内容会有所帮助
-
添加了版本号和高级设置来提问。还有什么需要的吗?
-
请也包括这些属性:应用程序池的队列长度属性和最大工作进程
-
我已将数字添加到问题中。谢谢!