So, our hosting provider recently moved our test server from one environment to another, virtualized environment. After the move some things on the test environment got extremely slow.
For example logging in to remote desktop was slow, not using remote desktop, just logging in. Also some asp.net applications that usually runs like the wind are now running like a tortoise. After a lot of debate as to the cause of this slowdown I began investigating the actual problem.
The last interesting find was found when I installed dotTrace on the test server. Running a page I knew would perform badly I got the following (high-level) results for the thread that performed the work for the troublesome page:
Real/wall time: 45538 ms
Thread time: 375 ms
As far as I know this means that the Thread spends an awful long time not being executed. My own pet theory is that the virtual environment is prioritizing other servers work over my server. Could that be the cause? What are your thoughts?
Note: If you need more details like the actual traces I have no problem handing them out if you ask.
Edit: More details! The most expensive calls in the trace are:
1 call to KeyInfoX509Data.ctor(X509Certificate, X509IncludeOption): 30014 ms
1 call to SignedXml.ComputeSignature: 15045 ms