2010-08-02 44 views
0

我有一个MVC应用程序调用几个不同的Web服务。在应用程序上运行负载测试时,我注意到性能(吞吐量和响应时间)随着并发用户的增加而迅速下降。通过排除法,我剥夺了一切,除了一个单独的虚拟呼叫刚刚返回一个空的对象,并生成HTML的一点点Web服务。如何提高WCF Web服务的性能?

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

我知道,这是很难从这些“成果”解释太多,所以我在寻找的负荷下的最佳性能上如何调整WCF Web服务的任何信息。

+0

您的服务由IIS托管吗?您是否尝试增加应用程序池中可用工作进程的数量? – Jason 2010-08-02 18:43:06

+0

我建议添加一些更具体的信息,否则你会得到downvoted和/或得到非常一般的答案。 – 2010-08-02 20:12:29

回答

1

我做了一堆绩效工作对我们的WCF服务,而回,主要是增加货币的通过我们的应用程序会在水平方面。我把我在博客里学到的东西,它希望你能找到有用:

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

此外,检查出的链接丹Rigsby和斯科特·温斯坦博客文章页面的底部,他们做了一些前段时间我也发现了一些非常好的帖子,用于改善WCF的性能,我发现它非常有用

0

除非你提供更多的细节,我不能确定,但​​你用完MVC或WCF的进程空间吗?如果您未使用MVC AsyncController,则可能会很容易地在MVC中耗尽处理空间。发出WCF请求将消耗UI的IO线程,并在达到阈值后阻止/排队其他呼叫。