并行时WCF服务变慢

时间:2015-05-20 09:21:18

标签: .net performance wcf jmeter server

在我们的生产环境中,我们已经开始体验慢速WCF调用(入站)。我们曾经能够在60-80ms内发送响应,但现在有时需要500-800ms甚至更长时间。

我开始使用JMeter模拟实时流量并测量响应时间,从而在非生产环境中进行测试。创建JMeter测试计划,使其达到我们不同的端点,其重量与我们的实时环境大致相同。

现在我在4个不同的端点上使用了9种不同的方法,有些是RESTful,有些是SOAP。

当我将每个线程组设置为一个线程(总共9个线程/用户)并以30秒的固定持续时间开始测试时,我得到平均响应时间。 45毫秒在30秒期间,我击中了端点500次。

使用不变的吞吐量计时器设置测试,因此增加线程数将保持相同的吞吐量。

当我为每个线程组(现在总共90个线程)将线程增加到10时,响应时间急剧增加到平均值。大约140ms 在30秒的时间内仍然达到大约500次端点,这告诉我问题/瓶颈与我们服务器上的并行性有关。但我似乎无法弄清楚在哪里看。

如果有人对此问题有任何意见,我是否会非常感谢,是否有对此行为的解释,或者我是否需要查看WCF端点的配置,IIS是否有一些相关设置或其他任何内容?

我们的应用程序在Windows 2012 R2服务器上的IIS 8.5下运行,并使用.NET 4.5

提前致谢

1 个答案:

答案 0 :(得分:0)

您的问题有很多原因:

  • 带有并发sql查询的慢速数据库
  • 配置错误的sql server
  • 带宽引起的网络争用
  • 配置错误的IIS
  • 影响并发的代码问题(锁定)
  • ...

没有更多元素就无法猜测