如何提高WCF Web服务的性能?

时间:2010-08-02 18:36:24

标签: asp.net-mvc wcf solr

我有一个调用几种不同Web服务的MVC应用程序。在对应用程序运行负载测试时,我注意到随着并发用户的增加,性能(吞吐量和响应时间)都会迅速降低。通过消除过程,我删除了所有内容,除了对Web服务的单个虚拟调用,它只返回一个空对象并产生一点点html。

从另一台服务器(使用Pylot)到100个并发用户的测试页面,我达到每分钟大约9,000个请求。相比之下,静态html(~70k)达到每分钟20,000个请求的峰值。我还创建了另一个测试页面,该页面调用另一个服务(运行Solr)并以每分钟18,000个请求达到峰值,以进行简单查询。

我知道很难从这些“结果”中解释得太多,所以我正在寻找有关如何调整WCF Web服务以获得最佳性能的信息。

2 个答案:

答案 0 :(得分:1)

我在一段时间内对我们的WCF服务做了大量的性能工作,主要是在提高通过我们的应用程序的货币水平方面。我把我学到的东西放在一篇博文中,希望你会发现它很有用:

http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/

另外,请查看页面底部的Dan Rigsby和Scott Weinstein博客文章的链接,他们之前做了一些关于提高WCF性能的非常好的帖子,我发现它非常有用。

答案 1 :(得分:0)

除非您提供更多详细信息,否则我无法确定,但您是否在MVC或WCF中耗尽了进程空间?如果您不使用MVC AsyncController,则可以轻松地耗尽MVC中的处理空间。发出WCF请求将消耗UI的IO线程,并在满足阈值后阻塞/排队其他调用。