ASP.NET在负载下的性能
我很难弄清楚为什么我的ASP.NET应用程序不能支持大量并发用户。我正在运行VS负载测试工具,我有大量有价值的数据,但我正在努力筛选这些数据。我使用的是逐步增加虚拟用户数量的用户加载模式,直到达到大约500个。在应用程序中出现未经处理的异常导致其崩溃之前,测试似乎一直没有问题。在崩溃之前,我监视的内存、CPU利用率和所有其他性能计数器都保持完全平坦。但一旦发生碰撞,我会观察到以下情况:ASP.NET在负载下的性能,asp.net,iis,Asp.net,Iis,我很难弄清楚为什么我的ASP.NET应用程序不能支持大量并发用户。我正在运行VS负载测试工具,我有大量有价值的数据,但我正在努力筛选这些数据。我使用的是逐步增加虚拟用户数量的用户加载模式,直到达到大约500个。在应用程序中出现未经处理的异常导致其崩溃之前,测试似乎一直没有问题。在崩溃之前,我监视的内存、CPU利用率和所有其他性能计数器都保持完全平坦。但一旦发生碰撞,我会观察到以下情况: ASP.NET/Requests当前性能计数器峰值 ASP.NET/Requests排队的性能计数器略微上升,
- .NET版本:4
- IIS版本:7.5
- 站点高级设置->最大带宽:2^32(~40亿)
- 站点高级设置->最大并发连接数:2^32(~40亿)
- 应用程序池高级设置->队列长度:1000
- 应用程序池高级设置->最大工作进程数:1
- 必须重新加载程序集
- 页面将被重新编译
- SQL连接将被关闭
- 检查应用程序池高级设置的回收部分,查看是否会在内存限制、正常时间等条件下触发回收
- 在GAC中加载一些程序集
- 检查web.config的编译元素中是否没有
属性batch=“false”
- 提高SQL连接字符串中的最小和最大池大小(不要忘记会话连接字符串)
- 检查启动时是否没有发生耗时的过程(如某些NHibernate动态映射)
iisreset
并等待它完成,然后运行一个简单的测试,测试所需的时间大约是您要求的时间,对吗?测试时间很短,我想这会让我知道重新启动需要多长时间。我会检查一下,然后再给你回复。