WCF Service Slows Down When Concurrent

In our production environment, we started experiencing slow WCF calls (incoming). Previously, we could send a response in 60-80ms, but now it sometimes takes 500-800ms or even more.

I started running tests in a non-production environment, simulating live traffic with JMeter and measuring response times. The JMeter test plan is designed in such a way that it hits our different endpoints with about the same weight as it does in our living environment.

I am currently pushing 9 different methods on 4 different endpoints, some are RESTful and some are SOAP.

When I set each threadgroup to one thread (9 threads / users in total) and run the test with a fixed duration of 30 seconds, I get the response time in avg. 45 ms. During 30 seconds, I hit the endpoints 500 times.

The test is configured with constant throughput timers, so increasing the number of threads will maintain the same throughput.

When I increase the threads to 10 for each thread group (now 90 threads in total) the response time spikes to avg. about 140ms Still hitting endpoints about 500 times within 30 seconds, I say the problem / bottleneck is due to parallelism on our servers. But I can't figure out where to look.

I would really appreciate if someone has some background on this issue, is there an explanation for this behavior, or if I need to look into the configuration of our WCF endpoints, if IIS might have any relevant settings or something yet?

Our applications are running IIS 8.5 on Windows 2012 R2 servers and are using .NET 4.5

Thank you in advance

+3


source to share


1 answer


There are many reasons for your problem:

  • slow database with parallel sql queries
  • misconfigured sql server
  • network disruption due to bandwidth
  • misconfigured IIS
  • concurrency code problem (blocking)
  • ...


Impossible to guess without additional elements

0


source







All Articles