Should I “Enable Memory Analysis” on a Web Intelligence Processing Server?
It was always best practice to leave the feature ‘Enable Memory Analysis‘ turned on, as this enabled a number of mechanisms to kick in and reduce memory consumption. I described some of them in a reply to an
However, with Web Intelligence now sitting on a 64 bit architecture the product no longer has a 2 GB limit of memory to run within and so these mechanisms are likely to be unnecessary. This assumes you have enough RAM on your server!
Our development team have been busy testing the use of the product with this feature disabled. Rigorous testing identified a defect in a third party ‘dll’ on the Windows Platform. Non-Windows was ok. With that issue now fixed in BI 4.1 Support Pack 7 it’s now time to switch our Best Practice recommendation.
From SAP BusinessObjects Business Intelligence 4.1 Support Pack 7 onward and BI 4.2 onward, we are now saying de-select ‘Enable Memory Analysis’
If you are using an earlier version, on the Windows Platform, then you should leave this feature enabled to prevent a possible crash of the Web Intelligence Processing Server.
What’s the benefit? Quite simply, performance. You should experience an improved performance as the product will not need to garbage collect as often, this sometimes ‘freezes’ the product.
Enjoy to the new power of Web Intelligence, but please just make sure you have enough RAM and monitor the memory usage of your server. If your server runs of RAM it will start to use swap and that will slow things down.
If you have limited RAM and you find your server is using swap, you may need to keep this enabled. Feel free to increase the Lower/Upper and Maximum Thresholds, but my advice would be to keep the ‘ratios’ between these values the same. Don’t set them all to the same value in other words. You’ll want to allow the memory recovery mechanisms to kick in one at a time.
Feel free to comment to this blog with your experiences of disabling this feature and provide SAP and other customers feedback.
Regards, Matthew (Twitter: @MattShaw_on_BI)
Great Matt, thanks.
Matt, what would the impact in a clustered system of turning this off and having 4 reports submitted (2 to each processing tier in the cluster). These two reports alone could consume 6 - 10 GB of RAM each which would severely impact the other users.
The impact in a clustered system of turning this off
Generally your users should experience an improvement with regard to performance and your servers should be using a bit more RAM.
and having 4 reports submitted (2 to each processing tier in the cluster). These two reports alone could consume 6 - 10 GB of RAM each which would severely impact the other users
A few thoughts come to mind:
Hope this helps, Matthew
Thanks for the post.
You mentioned in your article that "Rigorous testing identified a defect in a third party 'dll' on the Windows Platform. Non-Windows was ok". Does it mean we can disable memory analysis on a UNIX system as well?
Hello Halil, Yes, feel free to disable this on your UNIX system. As usual monitor the system after your change to see what that change affects and let your users know as they may give you some insight you can't observe. They should give you positive feedback! Post back here what your experience is so others can learn. Regards, Matthew
We have migrated from 3.1 to 4.2 and we have windows 2012 R2,4.2 SP2 on clustered environment with 4 application servers and two webapplications(tomcat) servers 32GB of ram on all servers 30GB paging drive on all servers.On each application server we have 3webiprocessing servers,on daily basis on non business hours around two thousand reports run output as .wid,.xlxs etc.the option is enabled with same configuration mentioned above on all the webiprocessing servers for 2 months on parallel run we didnt get any issues but a week back we went live and 2days back on two appication servers SIA is stopped when we checked in the event viewer it says warning as windows sucessfully diagnosied a low virtual memory condition on those two servers WIReportserver.exe alone consumed more than 32GB when we killed the WIReportserver.exe the SIA started but on one server the webiprocessing server didnt start it shows failed state for some hours later when we tried it has started.yesterday everthing went fine without issues.Please advive that we can de-select ‘Enable Memory Analysis’ on all our webiprocessing servers or do we need to have more RAM or more paging drive.I have read in windows forum for SAP products its recomended to have paging drive 3x times the ram.
Hello Bharath, based on what you've mentioned I would think that de-selecting 'Enable Memory Analysis' is going to create more problems for you, since the servers are more likely to use more RAM and your Operating Systems have already reported low virtual memory, So it seems to be, based on what you've said, you need a LOT more physical RAM in your server (and/or remove other processes on the server to free up RAM). You need to monitor the usage of your paging file, as soon as your Operating System reads/writes to the paging file you can forget about performance! I believe Windows does like a large page file specified, even if you never use it.
One option, before you install more RAM, is to drop the memory threshold values from whatever they are set at the moment, or set them back to the default. Hope this helps, Matthew
Hello Matthew Shaw,
Thanks for your suggestion,I will try to decrease the memory threshold values and try to remove other applications/processes which are no more useful on the server if both don’t work and if we face similar issue in future I will increase the RAM,before than could you please explain is it the normal behaviour at times of WIReportserver.exe alone consumed more than 32GB as our server support raised a concern that it may be a memory leak.By Increasing the RAM do it helps to overcome this problem so that it doesnt come in future.Because if all SIA stops,it is a diaster as all our scheduled reports fail to run please let me know if its a case of physical RAM issue so that i will forward it to our DSD team.
Hello Bharath, It is normal for the WIReportServer.exe to conume more than 32 GB of RAM? I wouldn't say its that normal, but I'm sure it happens and frequently and when it does this doesn't mean there's a memory leak at all. It all depends what you're asking the product to do and what 'memory threshold' setting you have set, and if memory analysis is enabled or not.
If you're asking it to retrieve millions of rows of data, generate XLS PDF of massive WID documents then, sure the memory could well go over 32 GB. To test for a memory leak you're starting point is https://blogs.sap.com/2014/10/29/looking-inside-the-web-intelligence-servers-with-webi-admin-tool/ and search that blog and its related wiki page for the words 'memory' and 'memory leak'. You'll find the webiadmintool will provide a huge amount of insight into what's going on. Regards, Matthew
Based on recent experiences with 4.2 SP4, I am finding that disabling the memory analysis setting has resulted in the WIP PID consuming all of the RAM on the system (140 GB on each node in this case). Once all of active RAM has been consumed the OS begins paging and eventually the WIP PID and other APS PID start crashing because they could not allocate any more RAM. The particular client I am working with has about 300 active Webi users generating about 30 sanctimonious requests during business hours. Some of the more complex reports are 250K - 1M records and use 5-10 GB RAM each.
The memory analysis was the only way to limit the number of active sessions within each PID and to avoid using all the available RAM on the system. Memory is not unlimited on servers so it seams to me that in some cases we still need to use this setting when users are creating large complex reports. We also had to reduce the number of connection from 200 to 30 for each WIP. If we had more than 50 users sessions in a single WIP, it would stop responding and memory would balloon.
Overview of WIP Settings that helped resolve the issue:
Great contribution Jonathan.
Thank you very much for sharing this insight. I'm sure other customers will find this very useful.
I'm pleased you found the right buttons to press and leavers to pull to find a solution that works for you.
We are at BI 4.2 SP4 with 2 nodes (6 CPU & 44 RAM). We want to cross check on the recommendations are still valid..?
why are you cross posting same question in multiple blogs, instead of asking once in Questions and Answers with Webi tag ?
Thanks for the quick response. Here we have 2 posts on webi performance with quite opposite suggestions..
We made the configuration settings as I mentioned, and requesting experts to review and suggest best..
Please suggest best from my configurations.
<moderator hat on>
You made 2 identical posts under 2 different blog posts. Please use Questions and Answers instead to post such complex queries.
<moderator hat off>
As to your question - you're giving us the specs and incomplete details of how your environment is configured. We have no idea what load, usage patterns, report designs and data amounts your users are going to consume.
Do you truly expect someone to give a good answer ?