为什么SSRS需要回收应用程序域

时间:2018-02-19 12:19:42

标签: reporting-services

我正在使用MS Reporting Services 2016.我注意到application domain is set by default to recycle every 12 hours。现在,回收后对用户的影响是报告服务响应缓慢或报告失败。刷新报告后两者都消失了,但这并不理想。

我遇到了一个SO答案,人们建议you can turn off the scheduled recycle by setting the configuration attribute RecycleTime to zero

我还读过将脚本编写到manually restart reporting services,它还会回收应用程序域。然后script that simply loads a report at a controlled time删除第一次加载问题。然而,这一切似乎都是我的工作,我宁愿不必这样做。

我担心的是,必须有合理的原因才能获得预定的回收时间,但我找不到任何解释这一点的信息。是否有人知道关闭预定的应用程序域回收是否会产生负面影响?

2 个答案:

答案 0 :(得分:1)

RecycleTime是一个功能,旨在确保SSRS不消耗它不需要的RAM,并可能使机器的其余部分挨饿。禁用刷新实际上会删除用于短时间密集处理的任何内存的功能。

如果您确信您的计算机资源合适,您可以关闭刷新,或者如果没有,或者将刷新计划为非工作时间,并定义Cache Refresh Plan以立即缓存任何超级重要报告。尽量减少用户的影响。

进一步阅读:https://www.mssqltips.com/sqlservertip/2735/prevent-sql-server-reporting-services-slow-startup/

答案 1 :(得分:0)

我想我可能已经简化了这一点,但是出于某种原因,SSRS被设计为每12小时(默认)进行一次回收。如果没有损坏,请不要修复。就我而言,我想控制回收发生的时间。我在6:50 am从SQL Agent作业执行1行powershell脚本,然后在7 am生成订阅报告,这将启动SSRS,并且用户看不到任何性能下降。

重启服务“ ReportServer”

将SSRS配置文件设置留在720分钟时,使回收在下午6:50再次发生。订阅报告是在整个晚上生成的,因此,如果人们在下班后使用SSRS,则不会有性能问题,因为系统已经在运行。

我们可能会考虑过度吗?