1

我们有一台配备 8GB RAM 的 2 x Quad Core Xeon 服务器和安装了 Windows Server 2003 Enterprise 的服务器。我们在上面安装了基于 .NET Framework 3.5 的应用服务器。该服务器使用 SQL Server 2005 作为其数据库服务器。

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

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

4

3 回答 3

3

不幸的是,可能需要更多来回答您的问题。发生这种情况的原因有很多,其中大多数都与您的代码有关。

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

但这是基于没有足够信息的疯狂猜测。

我建议你分析你的代码。找出您在执行过程中大部分时间都花在了哪里,然后在此处发布代码或其经过清理的版本,以便我们帮助您优化它。

于 2009-11-02T20:12:45.740 回答
1

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

以下帖子描述了如何禁用此功能:

在启动时绕过 Authenticode 签名检查

于 2009-11-04T03:37:38.193 回答
0

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

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

最后一件事,就像 Randolpho 说的那样,你真的必须用某种分析器跟踪你的代码执行,看看事情在哪里被捆绑了。

祝你好运!

于 2009-11-02T21:00:52.140 回答