Windows 2003上的.NET应用程序性能问题

时间:2009-11-02 20:08:14

标签: c# .net performance windows-server

我们有一个2 x四核Xeon服务器,内置8GB内存和Windows Server 2003企业版。我们安装了基于.NET Framework 3.5的应用服务器。服务器使用SQL Server 2005作为其数据库服务器。

当我们安装应用程序服务器时,它曾经具有超快的性能,一切都很好。一旦我们加入我们的域名,其性能就会大幅下降。例如,花费1秒完成的任务现在需要大约30秒。这很奇怪,因为只有基于.NET的应用程序的性能才会受到这种性能的影响,但其他应用程序仍以正常速度运行。

有没有人知道为什么会这样?任何帮助或建议都非常感谢。

3 个答案:

答案 0 :(得分:3)

不幸的是,回答你的问题可能需要更多。出现这种情况的原因有很多种,其中大多数都涉及到您的代码。

根据你加入域名的症状,然后事情开始造成麻烦,我会说你有很多网络,你以前可以在你的机器本地完成和延迟现在实际上是在制造麻烦。

但基于不够的信息,这是一个疯狂的猜测。

我建议您分析您的代码。找出在执行期间花费大部分时间的地方,然后在此处发布代码或已清理的版本,以便我们帮助您优化它。

答案 1 :(得分:1)

我确实找到了我的问题的答案,所以我认为在这里分享它可能会很好。 CLR在尝试加载程序集时希望为具有authenticode签名的程序集生成发布者证据。在我们的案例中,CLR试图连接到clr.microsoft.com但我们的服务器的Internet访问被阻止,因此每当应用程序服务器尝试加载新程序集时都会造成巨大的延迟。

以下文章介绍了如何禁用此功能:

Bypassing the Authenticode Signature Check on Startup

答案 2 :(得分:0)

我将在这里猜测,并认为你在谈论一个Web应用程序。如果这是正确的,您可能需要查看您在Web服务器上设置的应用程序池。您的应用程序可能会对在开始运行时设置自己的池感到困惑。

要检查的另一件事可能是您的数据连接,并确保您关闭所有已打开的内容。

最后一件事,就像Randolpho所说的那样,你真的必须通过某种形式的探查器跟踪你的代码执行,并看看事情正在被束缚。

祝你好运!