Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
We have been struggling with performance issues on our QlikView clustered servers. We implemented a full server reboot at 11 pm every night.
The server begins with a healthy amount of VMFree (we have 128 GB of physical RAM).
During the day, as users come on and off, the VMFree steadily declines. But even in the evening as user sessions come to an end, the VMFree never recovers, even after several hours.
A picture is worth a thousand words. The graph below is from the Server Performance*.log files.
How to solve this? For what it's worth, we do have one document preloaded on this server.
Qlikview server does not release the allocated RAM in use by design. Rather it uses the allocated RAM as a memory pool for apps, state and cache. If the RAM increases above the working set limit set in QMC, then it releases enough when complete to get back to the working set limit. That is why it hovers around 20MB free in your case. Restarting the server will free up that memory for other applications, but it may not be necessary unless you are having performance problems.
As mentioned by the previous poster, QlikView will not release memory over time, but use as much as is available until it reaches the configured Working Set Limit.
The only chunks of memory that are released over the day are documents that have reached their timeout (so, no activity on the doc for x amount of time). Cached calculations and selections remain in memory however, even if the document itself was unloaded.
There's a really nice video I like to recommend people to watch when they are trying to understand how our engines use memory: QlikView Memory Usage (kb 25040).
But you were asking on how to resolve this, so maybe I should get on to that.
While I don't think there is something broken in your system, there are methods for you to review what's going on in the environment if you want to get a better understanding of it.
Troubleshooting a QlikView Server is a blog post that goes into some detail on what you could look at, as well as a few best practices on how to configure the system.
The best practices are documented down at the bottom of the post.
A question you'll need to ask yourself though is: If you do not clear out memory with a restart, how does the server behave the next day? Looking at the screencap, it seems to be evening out at what I assume is your Working Set Limit, so I am curious to know how performant the system is the next day if you chose not to clear memory.
At this point, the QVS should be able to manage memory by itself and you shouldn't be seeing a negative impact unless there are documents or objects involved that are causing issues.
Should you see negative performance impact, you may decide to lower document timeout values, or you may decide to review the documents if they can be streamlined a little more. Or you might decide the system has grown to a point where it needs more memory.
You can try implementing ClearCacheTimesPerDay=1 option which will clear cache at Midnight. Rebooting the server Daily always deteriorate the hardware life.