views:

127

answers:

3

Hi,

We have a 2 x Quad Core Xeon server with 8GB of RAM and Windows Server 2003 Enterprise installed on it. We installed our application server which is based on .NET Framework 3.5 on it. The server uses SQL Server 2005 as its database server.

When we installed the application server, it used to have ultra fast performance and everything was fine. Once we joined it into our domain, its performance decreased dramatically. For example a task that took 1 sec to complete, now takes about 30 sec. This is very strange since only .NET based applications' performance got this performance hit but the other applications still run at their normal speed.

Does anyone have any idea about why is this happening? Any help or suggestion is much appreciated.

+3  A: 

Unfortunately, more is probably needed to answer your question. There are a host of possible reasons why this is occurring, and most of them involve your code.

Based on the symptom that you joined the domain and then things started causing trouble, I'd say you've got a lot of networking that you're doing that previously was able to be done locally on your machine and the latency is now actually causing trouble.

But that's a wild guess based on not nearly enough information.

I'd suggest you profile your code. Find out where the majority of your time is spent during execution and then post the code or a sanitized version of it here so we can help you optimize it.

Randolpho
I would actually specifically look at name resolution - network latency in general shouldn't really be affected by joining a domain.
Pavel Minaev
Excellent point. Alas, we have yet to hear back from @O. Askari on the subject.
Randolpho
It could also be group membership lookups if there are lots of groups and/or multiple domains.
adrianbanks
The application heavily depends on Remoting to transfer data between the clients and the server. But this is not the first time this application is deployed on a domain. Its currently working just fine under much heavier pressure everywhere else. Thats why I can't find the problem. The server's hardware used to run our application server very fast once it was in a workgroup. Also i have to mention that almost every .NET application now has a performance problem on the mentioned server. It seems that our application isn't the cause but I'm not 100% sure.
O. Askari
@O. Askari: The only way to be sure is to find out where the delay is occurring. Profile your code. Find out what method or methods are causing the slowdown. Track down the issue. Don't just assume that your code is a black box. The issue could be a misconfiguration or any number of things, but knowing *where* the slowdown occurs will help you track down the real cause.
Randolpho
A: 

I'm going to make a guess here and think that you're talking about a web application. If this is correct, you might want to take a look at the application pools you have setup on the webserver. Your application might be getting confused about which pool to set itself in when it starts running.

Another thing to check might be your data connections and make sure that you're closing everything that's been opened.

The last thing, like Randolpho said, you're just really going to have to follow your code execution with some kind of profiler and see where things are getting tied up.

Good luck!

Chris
Thanks for your answer. Sorry that i didn't provide more information. Our application server is currently running as a console application but Its going to run as a windows server once I'll definitely try to profile the server.
O. Askari
+1  A: 

I did find the answer to my question so i thought it might be good to share it here. The CLR want generate publisher evidence for assemblies with authenticode signature when it tries to load the assemblies. In our case CLR was trying to connect to clr.microsoft.com but our server's internet access was blocked so it caused huge delay whenever the application server tries to load a new assembly.

The following post describes how you can disable this feature:

Bypassing the Authenticode Signature Check on Startup

O. Askari