September 29, 2010 at 2:19 pm
Hi,
I have set the <WorkingSetMinimum> property to 2.4GB in my reportserver 2008 config file.
By defintion, <WorkingSetMinimum> setting means,
Lower limit of service memory consumption; memory will not be released if the consumption is below this amount, though the service will not reserve the designated amount of memory when it starts.If service uses more than the designated amout of memory, it will release back the memory only till this declared value and not beyond that, which means it should keep 2.4GB as designated.
See this link for definition:
However, it seems the service is not behaving this way. When I run huge reports say with 1 million or 2 million records, the memory consumption indeed goes higer than the designated amount but once the report is created it gradually releases the complete memory back and do not keep anything with it.
Similarly when relatively smaller reports are runnning, the memory usage is lower than the desingated <WorkingSetMinimum> limit and once the report is created, all memory is released back and the process do not keep anything.
Why I am seeing such behaviour, any idea people?
Regards.
October 6, 2010 at 11:51 pm
MemoryLimit and MaximumMemoryLimit settings are obsolete in SQL Server 2008. If you upgraded an existing installation or using an RSReportServer.config file that includes those settings, the report server no longer reads those values
Source - Microsoft
Raunak J
October 7, 2010 at 2:53 pm
Hi Raunak,
Thanks for the reply but I am aware about this. So what I am talking about is the way for setting the maximum and minimum memory limits in SSRS 2008 through the report server config file. I had confusion over the working of workingsetminimum property of the report server service. I had received a somewhat satisfactory explanation from my friend which goes like,
The current verison of the documentation says:
Specifies a lower limit for resource consumption; the report server will not release memory if overall memory use is below this limit.
It seems like you're taking "will not release memory" to mean that the SSRS process will reach the memory utilization and maintain it regardless of whether it is needed. This is not a correct interpretation. Rather SSRS uses system memory only when it is needed and tries to give back memory after it has finished using it. This is the behavior any well behaving process should exhibit.
WorkingSetMinimum describes how much memory the RS service will consider "belongs to it" when there is memory pressure on the box. You can image a situation where multiple processes are competing for the same memory space. A well behaving process will try not to consume all memory on the box, but it can expect to have some amount of memory. WorkingSetMinimum is the value that divides memory into what 'belongs' to SSRS and what *should* be available for other processes to use. By default this is 60% of available memory on the box.
If the system is memory pressure, and SSRS has a sustained load that requires it to use 60% of the system memory, then you should see SSRS using at least 60% of the system memory. Above 60% memory utilization, SSRS will take steps to release memory (since that memory should be available to other processes). At the opposite side of the spectrum WorkingSetMaximum defines the upper limit that SSRS will try to stay below.
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply