我们有一个Sitecore 6.6实例,它用于托管多个站点。它托管在IIS 7.5中。我们开发了定制的Sitecore子布局和管道,用于跨网站使用。
当在bin文件夹中部署任何dll时,Sitecore站点需要很长时间才能启动(8-10分钟)。但是,当IIS被重置时,启动时间更短(30-40秒)。
应用程序启动时间比IIS重置更多地用于DLL部署的原因是什么?有什么建议可以改善DLL部署的应用程序启动时间吗?
更新1:部署后的启动时间会影响我们的构建过程,因为它会增加所有环境(DEV、STG、LIVE)中的总体构建部署时间。
w3wp过程的分析快照显示了两个主要的热点:
更新2:在遵循VicentUpdate2的部署后,w3wp过程的分析快照显示了主要的热点
Sitecore.Web.UI.WebControls.Sublayout.GetUserControl(Page)
对内存转储的进一步分析表明,线程正在等待新部署的DLL的JIT编译。
发布于 2013-11-19 10:34:37
对我来说,就好像你的问题不是开始了,而是关闭了。当您复制dll时,文件收集程序将检测到bin文件夹中的更改(将其写入日志)并尝试关闭sitecore (也会记录此日志),但如果sitecore的任务运行在不同的线程上(索引、发布、计划任务等),则信号量将等待其他线程正常完成。这就是为什么当您“杀死”进程,而不等待线程完成sitecore快速启动。我在我的环境中也有这种行为,所以当我需要快速重新启动时,我复制dll,等待几秒钟,所以至少sitecore尝试关闭,然后我杀死了与我的池相关的w3p.exe。我不会建议任何人这么做,但我没有办法“仁慈”地杀死这些线程.也许有人知道如何“很好地强迫关闭.”
发布于 2013-11-18 10:54:17
这个亚历克斯·夏巴的博客文章有一些有趣的指针来改进Sitecore的启动时间(但如果您谈论的是活动环境而不是DEV环境,则可能不适用)。
如果还没有检查预取缓存并运行性能调整指南,也可能是值得的。
发布于 2013-11-20 12:43:28
我以前见过这个问题。它发生在6.5版上,但从那以后我就没有在发行说明中看到过对它的修正。
Sitecore支持对此有一个修补程序--它确实与他们的文件系统监视任务有关。您需要向他们出示一张票,以获得修补程序或其他信息。
我对这个问题的支持票参考是370593。修补程序有323775期。如果您在支持票中提到了这一点,它应该会稍微加快进程--如果这确实是您正在经历的问题。
https://stackoverflow.com/questions/20045738
复制相似问题