我有一个调用几个不同web服务的MVC应用程序。在应用程序上运行负载测试时,我注意到性能(吞吐量和响应时间)随着并发用户的增加而迅速下降。通过消除过程,我去掉了所有东西,只有一个对web服务的虚拟调用,它只返回一个空对象,并产生少量的html。
从另一台具有100个并发用户的服务器(使用Pylot)访问该测试页面时,我的峰值约为每分钟9000个请求。相比之下,静态html (~70k)的峰值约为每分钟20,000个请求。我还创建了另一个测试页面,它调用另一个服务(运行Solr),对于一个简单的查询,峰值为每分钟18,000个请求。
我知道从这些“结果”中很难解释太多,所以我正在寻找任何关于如何在负载下优化WCF Web服务以获得最佳性能的信息。
发布于 2010-08-03 04:20:43
不久前,我在我们的WCF服务上做了一些性能方面的工作,主要是在通过我们的应用程序增加货币级别方面。我把我学到的东西放在一篇博客文章中,希望你会觉得有用:
http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/
此外,请查看页面底部的Dan Rigsby和Scott Weinstein博客文章的链接,他们不久前在提高WCF性能方面也发表了一些非常好的文章,我发现这些文章非常有用。
发布于 2010-08-04 02:38:57
除非您提供更多细节,否则我不能确定,但是您是否在MVC或WCF中耗尽了进程空间?如果你不使用MVC AsyncController,你很容易耗尽MVC中的处理空间。发出WCF请求将消耗UI的IO线程,并在达到阈值后阻塞/排队其他调用。
https://stackoverflow.com/questions/3390716
复制相似问题