0

Ok, here goes. Due to performance issues on one of our production servers, I was asked to use the dottrace profiler to see what was going on. The project I am profiling is a application with a lot of WCF services running in IIS. It's a rather complex project and consists of multiple assemblies. Through out the project Ninject is used as DI container.

I tried profiling the application a couple of times on a development server to make sure it was working as expected, which seemed to be case.

I started profiling our production server (using tracing as detail level, on the w3wp) and instantly the performance of the server went down and it became very slow and unresponsive. I was aware that the profiler would have a performance issue, but I had no idea that it would almost kill the server (on dev server there was no problem).

So after that scary experience in very confused. Dit dottrace really allmost kill our production server? why?

The results from the profiling is at least as confusing, and I have no idea what to make of them, to me it seems like ninject is the issue here, but is this really it or is the dottrace profiler playing with me?

Any input is highly appriciated! Below is the results from dottrace

https://i.stack.imgur.com/vVvlM.png

UPDATE:

Ok, I expanded the hotspot, it seems to be mostly WCF calls. But why do they appear under the ninject resolver?

I will use sampling from now on and hope that it will be more gentle on our production server.

https://i.stack.imgur.com/c2tzL.png

iCediCe
  • 1,672
  • 1
  • 15
  • 32
  • Profile it in a "Sampling" mode. Besides that "tracing" mode slows down profiled app it can provide distorted results for methods called thouthands times. In your case Resolve methods is called 157 000 times. Also to see what takes all that time, please expand the tree on that screenshot http://i.stack.imgur.com/BWqBP.png – Ed Pavlov May 15 '15 at 13:18

1 Answers1

0

Using sampling mode seems to work a lot better. Unfortunately the profiling did not point out any real bottlenecks.

iCediCe
  • 1,672
  • 1
  • 15
  • 32