asp.net – IIS 8.5单工作进程与Web Garden性能
我有简单的ASP.NET应用程序,它只使用
ImageResizer调整图像大小,并且不执行任何其他操作.出于测试目的,我禁用了磁盘缓存,因此每次请求都会调整图像大小.
当我使用JMeter测试应用程序的性能时,我得到以下平均响应时间: >单个工作进程,1个并发客户端:~200ms 如您所见,当我运行单个工作进程和10个并发客户端时,尽管有可用的硬件资源,响应时间也会急剧增加:性能测试期间的CPU使用率约为30%,内存使用量约为150MB. 如here所述,
这似乎不是我的情况. 我不明白为什么会得到这样的结果.我所期望的是,即使是单个工作进程也会提供可接受的响应时间,直到达到资源限制. 10个并发客户端绝对不是一个重负载.有人可以向我解释,我错在哪里? 我的配置: > Windows Server 2012 R2 我的应用程序只是带有ImageResizer的空ASP.NET MVC应用程序,在this instruction中添加(选项3 – 手动安装),并在Web.config中禁用了DiskCache插件 解决方法
@ Ben的评论我找到了答案.
问题是ImageResizer基于GDI(如it’s site所述),其中包含锁(有关详细信息,请参阅this和this帖子).这就是为什么它在单个过程中运行得如此缓慢. 在找到问题的原因之后我尝试了this solution.从ASP.NET应用程序引用WPF程序集可能不是最好的主意,但它可以用于测试目的. 现在,当我执行与问题相同的性能测试时,我得到以下结果: >单个工作进程,1个并发客户端:~90ms 如您所见,现在应用程序工作得更快.它也充分利用了高负载下几乎所有可用的CPU资源,正如我最初预期的那样.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在不可见的asp.net面板中阻止数据绑定
- asp.net-mvc – 什么是“IIS模拟HTTP请求”?
- asp.net-mvc – 使用ASP.NET MVC在Details页面模板中显示来
- kendo-ui – 我可以在网格的数据绑定事件上传递参数吗?
- asp.net-core – 使用新的signalR for DotNet核心从控制台A
- Asp.NET处理程序和通用处理程序
- asp.net – 站点之间共享的IIS 7.0应用程序池 – 站点之间是
- ASP .NET – Eval()背后发生了什么?
- asp.net – 在IIS7.5中什么模块删除了400个错误请求的正文
- asp.net-mvc – 忽略viewstart在asp.net mvc razor视图?
- asp.net-mvc – 我可以(并且应该)强制NHibernate
- 在更新到ASP.NET 4后,IE中的会话“立即过期”?
- Asp.Net MiddleWare与HttpModules
- asp.net – 如何手动调用ValidationAttributes?
- asp.net-mvc – 如何使用activedirectorymembers
- asp.net在Server.Transfer之后如何获取当前页面的
- asp.net-mvc – 程序集使用System.Web.Http 5.1,
- asp.net – 页面控制
- asp.net-mvc – ASP.NET MVC 3简单可靠的移动设备
- asp.net-mvc – MVC中的绑定集合