为 Reporting Services 配置可用内存

更新日期: 2006 年 4 月 14 日

在 Reporting Services 中,报表服务器同时作为 Windows 服务和 Web 服务实施。每个服务都有配置设置,用于确定内存阈值,以及回收工作进程或应用程序域的频率。

每个服务处理不同种类的操作。报表服务器 Web 服务处理按需报表请求,包括创建报表快照或报表历史记录的请求。报表服务器 Windows 服务处理所有的计划报表请求,包括到共享文件夹或电子邮件地址的订阅传递。

报表服务器 Web 服务的内存设置

为报表服务器 Web 服务配置的内存是通过 ASP.NET 配置设置,依据 Machine.config 文件的 processModel 部分中的 memoryLimit 设置来指定的。memoryLimit 将允许的最大内存大小指定为系统内存总量的一个百分比,是指 Internet 信息服务 (IIS) 启动新进程并重新分配现有请求之前工作进程消耗的内存量。默认值为 60%。

IIS 将每隔 12 小时回收一次工作进程。通过在用于报表服务器的应用程序池中设置回收属性,可以指定不同的计划。

报表服务器 Windows 服务的内存设置

该 Windows 服务的内存设置是在 RSReportServer.config 文件中指定的。可以使用多种设置,以便可以指定内存限制和回收应用程序域的时间。

为报表服务器 Windows 服务配置可用内存

可以设置内存限制来防止报表服务器进程导致服务器停机或占用过多内存。这些限制是通过 RSReportServer.config 文件中定义的 MemoryLimitMaximumMemoryLimit 设置来指定的。

  • MemoryLimit 指定内存阈值,在超出此值后将不接受任何新的处理请求。此值以可用内存的百分比表示。有效值的范围为 0 到最大整数之间。默认值为 60。
  • MaximumMemoryLimit 指定当报表服务器内存使用量达到可用内存的某个百分比时回收应用程序域。此值为回收时可以使用的可用内存的百分比。默认值为 80。此值应大于为 MemoryLimit 设置的值。

达到 MemoryLimit 的值时,报表服务器应用程序域将不接受新的请求。允许继续执行当前正在执行的请求。只有当所用内存低于通过 MemoryLimit 指定的值时,才会接受新的请求。

如果现有请求在达到 MemoryLimit 值后继续占用额外内存,报表服务器将允许处理继续执行,直到所用内存达到通过 MaximumMemoryLimit 指定的值为止。这时,所有处理都将停止,应用程序域实例将重新启动。

设置内存阈值

MemoryLimitMaximumMemoryLimit 都以可用内存的百分比形式指定。报表服务器监视的是物理内存的占用情况。如果希望使用虚拟内存,则可以指定大于 100% 的值,以利用额外的内存资源。

为报表服务器 Windows 服务计划回收操作

可以计划回收报表服务器 Windows 服务的应用程序域的频率。报表服务器 Windows 服务的回收计划要符合通常用于 ASP.NET 应用程序域回收的 12 小时制模式。在计划的时间,所有新的请求都将转发给新的应用程序域实例。原始实例中正在处理的请求可以继续完成。一旦完成所有进程,就会删除原始实例,新的实例将成为唯一的活动应用程序域实例。

若要为报表服务器 Windows 服务指定不同的回收计划,请在 RSReportServer.config 文件中设置 RecycleTime 配置设置。

为报表服务器 Windows 服务配置卸载时间

报表服务器分配的等待时间为 30 分钟,这是在回收操作期间允许报表服务器 Windows 服务应用程序域关闭的时间。如果在所分配的时间内无法完成当前正在处理的请求(或者某个进程的所用时间比允许的等待时间更长),则会重新启动应用程序域实例。所有未完成的进程都将终止。

若要更改等待时间,请在 RSReportServer.config 文件中设置 MaxAppDomainUnloadTime 配置设置。

请参阅

概念

RSReportServer 配置文件
管理报表服务器 Web 服务和 Windows 服务

其他资源

部署 Reporting Services

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2006 年 4 月 14 日

已更改的内容:
  • 阐明了 Web 服务和 Windows 服务进程。