【问题标题】:How do I Improve performance of WCF Web Service?如何提高 WCF Web 服务的性能?
【发布时间】:2010-08-02 18:36:24
【问题描述】:

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

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

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

【问题讨论】:

  • 您的服务是否由 IIS 托管?您是否尝试过增加应用程序池中可用工作进程的数量?
  • 我建议添加一些更具体的信息,否则你会被否决和/或得到非常笼统的答案。

标签: asp.net-mvc wcf solr


【解决方案1】:

不久前,我在 WCF 服务上做了很多性能工作,主要是在提高通过我们的应用程序的货币水平方面。我把我学到的东西放在了一篇博文中,希望对你有用:

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

另外,请查看页面底部的 Dan Rigsby 和 Scott Weinstein 博客文章的链接,他们前段时间在提高 WCF 性能方面也发表了一些非常好的文章,我发现这些文章非常有用。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2021-02-22
      • 2013-04-18
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2011-11-06
      相关资源
      最近更新 更多