为报表服务器应用程序配置可用内存

尽管 Reporting Services 可使用所有可用内存,但您可以通过为分配给 Reporting Services
服务器应用程序的内存资源总量配置上限来覆盖默认行为。此外,您还可以设置阈值,以便报表服务器根据内存压力(低、中或高)来更改其排列请求优先级和处理请求的方式。在内存压力较低时,报表服务器通过为交互式或按需报表处理提供一个略高的优先级进行响应。在内存压力较高时,报表服务器使用多种方法在可用资源有限的情况下保持运行状态。

本主题介绍用户可以指定的配置设置,还说明了服务器在内存压力成为处理请求的决定因素时的响应方式。

  内存管理策略

Reporting Services
通过调整分配给特定的应用程序和特定类型的处理请求的内存量来响应系统资源约束。在报表服务器服务中运行和受内存管理限制的应用程序包括:

  • 报表管理器,一个用于报表服务器的 Web 前端应用程序。

  • 报表服务器 Web 服务,用于交互式报表处理和按需请求。

  • 后台处理应用程序,用于计划的报表处理、订阅传递和数据库维护。

内存管理策略适用于整个报表服务器服务,而不适用于进程中运行的单个应用程序。

如果系统没有内存压力,则每个服务器应用程序在启动时(收到请求前)都会请求一些内存,以便在最终收到请求时提供最优性能。当产生内存压力时,报表服务器就会调整其进程模型,如下表中所述。














内存压力

服务器响应

继续处理当前请求。几乎总是接受新请求。定向到后台处理应用程序的请求优先级低于定向到报表服务器 Web 服务的请求优先级。

继续处理当前请求。可能会接受新请求。定向到后台处理应用程序的请求优先级低于定向到报表服务器 Web
服务的请求优先级。所有三种服务器应用程序的内存分配都将减少,但后台处理应用程序的内存减少相对更多,以便为 Web
服务器请求提供更多可用内存。

进一步减少内存分配。拒绝要请求更多内存的服务器应用程序。当前请求的速度将会降低,完成所需的时间会更长。不接受新请求。报表服务器将内存中的数据文件交换到磁盘。

如果内存约束很严格,因此没有可用于处理新请求的内存,则报表服务器将在完成当前请求时返回 HTTP 503
服务器不可用的错误。在某些情况下,可以回收应用程序域以立即减少内存压力。

尽管无法对不同内存压力情况自定义报表服务器响应,但您可以指定配置设置,以定义区分高、中和低内存压力响应的边界。

  何时自定义内存管理设置

默认设置为低、中和高内存压力指定了不同的范围。默认情况下,低内存压力区域大于中内存压力和高内存压力区域。此配置最适于处理平均分发或增量增加或减少的负载。在这种情况下,各区域之间的切换是渐进的,因此报表服务器有时间调整其响应。

如果负载模式包含峰值,修改默认设置将非常有用。当处理负荷中突然出现峰值时,报表服务器可能会迅速从无内存压力状态转为内存分配失败状态。如果您同时启动了某个占用大量内存的报表的多个并发实例,则可能会发生这种情况。若要处理此类型的处理负荷,需要将报表服务器尽可能移动到中或高内存压力响应中,以便降低处理速度。这样可以完成更多的请求。为此,您应该降低 MemorySafetyMargin 的值,使低内存压力区域相对于其他区域更小。此操作将导致对中内存压力和高内存压力的响应更早发生。

  内存管理的配置设置

控制报表服务器的内存分配的配置设置包括WorkingSetMaximumWorkingSetMinimumMemorySafetyMargin 和 MemoryThreshold

  • WorkingSetMaximum 和 WorkingSetMinimum 用于定义可用内存的范围。您可以配置这些设置,以便为报表服务器应用程序设置可用内存范围。如果要在同一台计算机上承载多个应用程序,并且确定报表服务器相对于同一台计算机上的其他应用程序消耗的系统资源过多,则此设置可能很有用。

  • MemorySafetyMargin 和 MemoryThreshold 用于设置低、中和高级别的内存压力的边界。对于每种状态,Reporting
    Services
    都会采取纠正操作,以确保相对于计算机上的可用内存量对报表处理和其他请求进行相应处理。您可以指定配置设置以确定低、中和高压力级别之间的说明。

    尽管您可以更改配置设置,但这样不会提高报表处理性能。仅当请求在完成之前被删除时,更改配置设置才有用。提高服务器性能的最佳方法是在专用计算机上部署报表服务器或单个报表服务器应用程序。有关详细信息,请参阅规划部署拓扑

下图显示了如何综合使用这些设置来区分低、中和高级别的内存压力:

下表介绍了 WorkingSetMaximumWorkingSetMinimumMemorySafetyMargin 和 MemoryThreshold 设置。配置设置是在 RSReportServer.config
文件
中指定的。

















元素

说明

WorkingSetMaximum

指定内存阈值,在超出此值后将不会向报表服务器应用程序授予任何新的内存分配请求。

默认情况下,报表服务器将 WorkingSetMaximum 设置为计算机上的可用内存量。启动服务时,将会检测此值。

除非您手动添加,否则此设置不会显示在 RSReportServer.config 文件中。如果希望报表服务器使用较少的内存,则可修改
RSReportServer.config 文件并添加该元素和值。有效值的范围为 0 到最大整数之间。此值以 KB 为单位表示。

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

如果现有请求在达到 WorkingSetMaximum 值后继续占用额外内存,则将回收所有报表服务器应用程序域。有关详细信息,请参阅报表服务器应用程序的应用程序域

WorkingSetMinimum

指定资源占用的下限;如果内存使用总量低于此限制值,报表服务器将不会释放内存。

默认情况下,将在服务启动时计算该值。计算结果为初始内存分配请求占WorkingSetMaximum 的 60%。

除非您手动添加,否则此设置不会显示在 RSReportServer.config 文件中。如果要自定义此值,必须将 WorkingSetMinimum 元素添加到
RSReportServer.config 文件中。有效值的范围为 0 到最大整数之间。此值以 KB 为单位表示。

MemoryThreshold

指定 WorkingSetMaximum 的百分比,该百分比用于定义高压情况和中压情况之间的边界。如果报表服务器内存使用情况达到此值,报表服务器将降低请求处理速度,并更改分配给其他服务器应用程序的内存量。默认值为
90。此值应大于为 MemorySafetyMargin设置的值。

MemorySafetyMargin

指定 WorkingSetMaximum 的百分比,该百分比用于定义中压情况和低压情况之间的边界。此值是为系统保留的可用内存百分比,无法用于报表服务器操作。默认值为
80。






注意

MemoryLimit 和 MaximumMemoryLimit 设置在
SQL Server 2008 中已过时。如果升级现有安装或使用包含这些设置的 RSReportServer.config
文件,报表服务器将不再读取这些值。

内存配置设置示例

下面的示例显示了使用自定义内存配置值的报表服务器计算机的配置设置。如果要添加 WorkingSetMaximum 或WorkingSetMinimum,必须在
RSReportServer.config 文件中键入这些元素和值。两个值都是整数,表示要分配给服务器应用程序的 RAM(以 KB
为单位)。下面的示例指定报表服务器应用程序的总内存分配不能超过 4 GB。如果 WorkingSetMinimum 的默认值(WorkingSetMaximum 的
60%)是可以接受的,则可忽略该值并在 RSReportServer.config 文件中仅指定 WorkingSetMaximum。此示例包括 WorkingSetMinimum 以说明在要添加该元素时的显示方式:

<MemorySafetyMargin>80</MemorySafetyMargin>
      <MemoryThreshold>90</MemoryThreshold>
      <WorkingSetMaximum>4000000</WorkingSetMaximum>
      <WorkingSetMinimum>2400000</WorkingSetMinimum>

关于 ASP.NET 内存配置设置

尽管报表服务器 Web 服务和报表管理器是 ASP.NET 应用程序,但这两个应用程序都不会响应在 machine.config 的 processModel 部分中为在 IIS 5.0 兼容模式下运行的
ASP.NET 应用程序指定的内存配置设置。Reporting Services 仅从 RSReportServer.config
文件中读取内存配置设置。

时间: 2024-10-05 20:59:14

为报表服务器应用程序配置可用内存的相关文章

IIS6.0添加上.net4.0后,以前的.net系统出现“服务器应用程序不可用”的错误提示解决办法

把VS2010开发的网站.net4.0部署到Windows Server 2003的服务器上去, Windows Server 2003操作系统自带的为IIS 6.0,IIS 6.0一般只支持.NET 2.0的程序,这就需要配置服务器上的IIS 6.0达到支持.NET 4.0的目的.在网上查找了一些文章,以供大家查阅和参考,主要有以下几个步骤: 一.升级.net framework至4.0 如果服务器已经安装了VS2010,则其中已经包含安装了.net 4.0 framework,否则就需要另外

昨天服务器上的IIS出现“服务器应用程序不可用”错误。经历半天,终于解决。

昨天下午服务器IIS上挂载的ASP.NET站点全部出现"服务器应用程序不可用"错误,期间服务器未作任何改动. 服务器:windows server 2003 IIS:6.0 ASP.NET:3.5 之前系统运行两年有余从未发生过类似情形,搜过了网上的各种解决办法都未获得解决. =============================================================== 第一种: 在IIS中重新注册.net cd c:\windows\microsoft

asp.net“服务器应用程序不可用” 解决方法

服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的“刷新”按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web 服务器的系统事件日志中找到.请检查此日志项以查明导致该错误发生的原因. 引起这个的原因大概是现安装了.Net Framework后装的IIS导致.Net没有在IIS里注册. IIS中ASP.NET的版本号此时可选的有1.1.2.0和4.0三个,如果想让IIS把3个版本都集成上,那NET Fram

【问题解决方法记录】IIS服务器应用程序不可用

问题环境:Windows Server 2003   IIS6.0 问题描述: 访问IIS网站提示: 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的“刷新”按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web 服务器的系统事件日志中找到.请检查此日志项以查明导致该错误发生的原因. 在事件查看器中显示事件详细信息为: 由于无法创建应用程序域,因此未能执行请求.错误: 0x80070002 系统找不到指定

安装IIS之后运行aspx 显示“服务器应用程序不可用” 解决办法

引起这个的原因大概是现安装了.Net Framework,后装的IIS导致.Net没有在IIS里注册.  另外,还有可能是ASPNET账户没有IIS所指定服务器目录的权限.在资源管理器中找到“工具-文件夹选项-查看-使用简单文件夹共享(推荐)”,把前面的勾去掉,然后在服务器指定目录上点右键,属性-安全-添加-高级-立即查找,把ASPNET这个账户添加进去,给它指定完全访问的权限.这样做了以后就会发现没有了那个错误,不过如果访问数据库可能有会提示ASPNET这个账户没有权限访问数据库.这个提示就清

服务器应用程序不可用,由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件。

使用360更新网站补丁导致.net2.0环境报错问题现象:服务器应用程序不可用查看日志:出现由于无法创建应用程序域,因此未能执行请求.错误: 0x80070002 系统找不到指定的文件. 搜索定位:罪魁祸首kb2863239.卸载补丁:无法删除安装更新,操作卸载360完成卸载.收获心得:360粉转路人.打补丁选在下班之后,避免影响工作.

如何配置报表服务器扩展部署(Reporting Services 配置)

Reporting Services 支持扩展部署模式.该模式允许运行共享单个报表服务器数据库的多个报表服务器实例. 若要创建扩展部署,请使用安装程序和 Reporting Services 配置工具: 使用安装程序安装将与扩展部署联接的每个报表服务器实例. 使用 Reporting Services 配置工具将每个报表服务器连接到共享数据库.您一次只能连接并配置一台报表服务器. 使用 Reporting Services 配置工具将新的报表服务器实例联接到已经与报表服务器数据库连接的第一个报表

报表性能优化方案之多种报表服务器内存修改方法

服务器内存修改 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法. JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 示例工具 以下示例工具:报表开发工具FineReport Tomcat服务器内存修改 1. 问题描述 java应用程序运行过程中会使用web应用服务器的内存,如执行报表获取的数据,运算的中间数据等都需要暂存在服务器内存中. 当没有空内存可用时,就会出现内存溢出错误:java.lang.OutOfMe

SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法

报表服务器实例没有正确配置.请先使用 Reporting Services 配置工具创建 SharePo 在管理中心配置Reporting Services集成时候,报下面的错误 报表服务器实例没有正确配置.请使用Reporting Services配置工具创建SharePoint集成模式的报表服务器数据库,然后再为此SharePoint Web应用程序设置集成选项. 这说明Reporting Services配置管理器的数据库使用了默认的数据库,没有创建SharePoint集成数据库 新建数据