Sharepoint网站需要一段时间才能在早上加载第一件事

时间:2008-12-11 03:31:42

标签: sharepoint performance

我们的团队使用Sharepoint和一些自定义网页部件构建了一个网站。我们注意到网站在早上第一次访问网站时需要一段时间才能加载。后续访问很好。我们怀疑Sharepoint正在重新索引其列表等。

有没有其他人看到Sharepoint的这个问题?有人有建议的修复方法吗?

6 个答案:

答案 0 :(得分:17)

默认情况下,IIS应用程序将在夜间回收其工作进程。您可以在IIS管理器中将其关闭,但更好的选择可能是只将一个预热脚本添加到定时作业。您可以在SharePoint中执行此操作,但更简单的可能是在Windows中添加计划任务以在完成回收后触发预热脚本。

谷歌的“sharepoint预热脚本”将产生几个结果,including this,这实际上也解释了相同的情况: - )

答案 1 :(得分:3)

我的猜测是应用程序池的工作进程设置为每晚在IIS中的某个时间进行回收,这导致早上的第一件事就是延迟。右键单击IIS中的应用程序池 - >属性 - >并查看它所说的“在以下时间回收工作流程:”以便自己查看。

您可以禁用此选项来解决您的问题,但我不推荐它,因为每晚都有工作进程回收将回收任何可能泄漏的内存。在SharePoint开发期间,内存泄漏尤其可能,因为您可能知道SharePoint对象模型中的许多对象在无人管内存中执行大部分工作。如果没有正确处理这些对象,可能会占用大量内存,同时在.NET垃圾收集器上添加很少的内存压力,从而延迟垃圾回收。

Best Practices: Using Disposable Windows SharePoint Services Objects

我同意seanb关于设置计划任务以在早上加载网站以解决延迟问题的建议。只需确保在工人流程明显回收后安排一段时间。

答案 2 :(得分:2)

没有。我猜测应用程序中已编译的组件已从内存中卸载,必须重新加载到缓存中。我的ASP.NET Web应用程序也会发生这种情况。我在QA网站上特别注意到它几乎没有经常被击中,因此当我去访问它们时几乎总是从缓存刷新。

您可以查看在回收闲置工作进程之前,增加站点app pool等待的时间。

答案 3 :(得分:2)

同意tvanfosson这听起来很像你用aspnet应用程序启动的延迟。

快速而肮脏的修复可能是设置一个计划任务,将WebClient指向该站点,并在人们开始使用它之前每天早上将其付诸实践。

答案 4 :(得分:1)

当然,比约恩强调了“问题”的主要原因。应用程序池在夜间回收。

然而,这应该需要30秒。

如果需要2到3分钟,请考虑阅读this。如果您的服务器无法访问互联网,那么主要解释为什么它太慢了。只是尝试从microsoft.com下载证书撤销列表,看看它是否有所作为。

答案 5 :(得分:1)

如果您运行的是Windows Server 2008 R2,那么IIS 7.5 available for free现在有一个Application Warm-Up扩展。在撰写本文时,它处于测试阶段。

这会“预热”直接从IIS配置的应用程序池,也可以使用自定义初始化逻辑进行扩展。

应用程序预热扩展程序不再可用,并将“重新调整以用于下一版本的IIS”according to Microsoft