Configuring Available Memory for Reporting Services
In Reporting Services, the report server is implemented as a Windows service and as a Web service. Each service has configuration settings that determine memory thresholds and how often a worker process or application domain is recycled.
Each service handles different kinds of operations. The Report Server Web service processes on-demand report requests, including requests to create a report snapshot or report history. The Report Server Windows service processes all scheduled report requests, including subscription delivery to a shared folder or e-mail address.
Configured memory for the Report Server Web service is specified through ASP.NET configuration settings, by the memoryLimit setting in the processModel section of the Machine.config file. The memoryLimit specifies the maximum allowed memory size, as a percentage of total system memory that the worker process can consume before Internet Information Services (IIS) launches a new process and reassigns existing requests. The default is 60 percent.
IIS recycles worker processes every twelve hours. You can specify a different schedule by setting the recycling properties on the application pool that you use for the report server.
Memory settings for the Windows service are specified in the RSReportServer.config file. A variety of settings are available so that you can specify memory limits and when to recycle the application domain.
Configuring Available Memory for the Report Server Windows Service
You can set memory limits to prevent a report server process from bringing down a server or consuming too much memory. These limits are specified through the MemoryLimit and MaximumMemoryLimit settings defined in the RSReportServer.config file.
MemoryLimit specifies a memory threshold after which no new processing requests are accepted. This value is expressed as a percentage of available memory. Valid values range from 0 to maximum integer. The default is 60.
MaximumMemoryLimit specifies that the application domain be recycled when report server memory consumption reaches a certain percentage of available memory. This value is the percentage of available memory that can be used while recycling. The default value is 80. This value should be greater than the value set for MemoryLimit.
When the value for MemoryLimit is reached, the report server application domain does not accept new requests. Requests that are currently in progress are allowed to continue. New requests are accepted only when memory use falls below the value specified through MemoryLimit.
If existing requests continue to consume additional memory after the MemoryLimit value has been reached, the report server will allow processing to continue until memory use reaches the value specified through MaximumMemoryLimit. At that point, all processing is stopped and the application domain instance is restarted.
Setting Memory Threshold Values
Both MemoryLimit and MaximumMemoryLimit are specified as percentages of available memory. A report server monitors the use of physical memory. If you want to use virtual memory, you can specify values above 100% to take advantage of additional memory resources.
Scheduling a Recycle Operation for the Report Server Windows Service
You can schedule how often the application domain for the Report Server Windows service is recycled. The recycle schedule for the Report Server Windows service conforms to the 12-hour pattern typically followed for ASP.NET application domain recycling. At the scheduled time, all new requests are forwarded to a new instance of the application domain. Requests that are currently in progress in the original instance are allowed to complete. Once all processes are complete, the original instance is deleted and the new instance becomes the sole active application domain instance.
To specify a different recycling schedule for the Report Server Windows service, set the RecycleTime configuration setting in RSReportServer.config file.
Configuring the Unload Time for the Report Server Windows Service
A report server allocates a wait time of 30 minutes during which the Report Server Windows service application domain is allowed to shut down during a recycle operation. If the requests that are currently in process cannot be completed during the allotted time (or if a process is taking longer than the wait time allows), the application domain instance is restarted. All incomplete processes are terminated.
To change the wait time, set the MaxAppDomainUnloadTime configuration setting in RSReportServer.config file.
ConceptsRSReportServer Configuration File
Administering the Report Server Web Service and Windows Service