2012-01-12 78 views
0

我正在使用本地网络上工作的网站。它运行ASP.Net 2.0和IIS6。该网站使用母版页,并为搜索实用程序提供了一些代码文件(C#)。有一些.js文件和加载页面后发生的几次ajax调用。初始服务器响应时间延迟

此时该网站并不是非常“沉重”,不应该花很长时间才能加载。出于某种原因,网站第一次加载时,在发生任何事情(20-24秒)之前会有很长的延迟。起初我认为这可能是该网站的编译时间,但我预先编译了它,并没有任何区别。

一旦访问,网站加载非常快。经过很长一段时间(几个小时)后续访问将

如果它有帮助,我已经包括从萤火虫下面的一些屏幕捕获。

有没有人有一个想法是什么可能导致延迟或我怎么可以找出发生了什么?

enter image description here

enter image description here

回答

1

我们总是看到第一自旋了一个长的滞后时间,由于我们的内部高速缓存活动的组合,IIS旋转起来的aspnet_wp,并建立各种数据库的连接。

如果IIS设置为在指定的秒数,达到内存阈值或其他阈值后重新启动进程,您可能会在后续访问中看到此情况。

关于初始启动时间,您可以做的唯一事情是在启动过程中仔细追踪应用程序的活动。要特别注意数据库连接和缓存,因为我们发现这是我们大部分时间都花费在其中的地方。

对于后续访问,我们总是删除IIS中的默认回收时间(类似于22小时),并将其替换为固定的时间回收。它仍然无助于第一次请求,但至少你会知道它何时发生。

如果最初的请求确实存在问题,并且您无法弄清楚如何通过代码来减少它,您可以安排一个小型.Net exe在回收时间后10分钟运行,并使用WebClient一次点击该站点以避免初始化过程。