2011-10-05 125 views
1

在工作中,我有一个问题,我一直在努力的网站,这让我有点难倒。它是在Windows Server 2003上的IIS6上运行的Microsoft MVC 2网站,它针对位于不同服务器上的SQL Server数据库。针指向网站缓慢

这个问题在尝试登录时表现为极端缓慢,我写了一个快速脚本来调用第100页的日志,时间在3秒到14秒之间变化,但是它很不稳定。

我在执行登录时运行了SQL事件探查器,并且行为是您将提交,第二次或者将会传递,您将看到sql事件探查器记录连接,然后以毫秒为单位执行sql,然后执行在重定向之前经过几秒钟。

当我们部署到另一台服务器上,我们有太多的访问和网站快速执行云托管服务的完整性检查,同样的登录脚本X100完整的请求始终需要1-2秒。

所以刚才通过的一切来看,我们已经排除了:

这不是服务器硬件处理器和内存的使用几乎没有什么。 这不是带宽,因为一旦连接到Sql Server,顺序执行的脚本速度非常快。 这不是Sql被执行或任何索引问题,sql执行得非常快。

在这个阶段,感觉就像与应用程序是如何进行打开和关闭到SQL服务器的初始连接有问题。就像服务器之间的握手一直占用一样,因为一旦连接与数据库的交互非常快。

我只是无法弄清楚这是什么服务器,并在那里运行良好将是云服务器之间的差异。

任何有关我可以执行的工具或测试的建议都将非常感激。

谢谢。

+0

您是否在您的web.config中为您的连接字符串使用服务器名称或IP地址。如果使用服务器名称,是否可能是第一次连接的DNS查询缓慢? – Tommy

+0

为什么不F5通过它,看看它停在哪里? – bzlm

回答

1

尝试使用类似Red Gate Ants Profiler之类的东西 - 它会显示所有托管代码的时间安排(即使您没有源代码的框架内容 - 只需确保选择过滤器以显示它)。 (审判应该正常工作)。

如果时间都花在管理方这应该给你一个想法。如果不是的话,这将是难以追查,但这里的一些想法:

  • DNS
  • 认证(可以把它在外部认证,就像对一个域控制器?)之间
  • 网络连接服务器
  • 未能与一个协议连接,回落到另一个(Firewall?
  • LLMNR?

希望这可以帮助

+0

干杯丹尼,我会检查这些事情。它仍然非常奇怪,但我们已经将它移动到另一台服务器上,另一台服务器是DR服务器。这应该让我们有更多的时间来审问发生了什么。 – David