Unless you have performance or service unavailability problems, don't bother with it. Get a dedicated server for QVS, put enough memory to handle the peak usage, and let it be. Even after all users have disconnected, QVS will not free all memory.
If you have availability problems, get a monitoring tool that will ping the QVS service every 5 minutes and send alerts when it's down.
I am having the same problem, but in my case it happens with a preloaded application.
Apparently the QV Server uses RAM to save different calculations that users performed during the day. If you don't close the document during the day, it is possible for the RAM usage to increase significantly.
From my point of view you have two options:
1) Reduce the timeout of the document so that it closes when nobody is using it
2) Reduce the working set limits for the RAM (QEMC - System Config - Server). I have not tried it yet but it might be a solution.
Hope this help.
As mentioned in one of the replies, the Working Set Limits control the memory reservations and allocations.
I'm an amateur at understanding Window's memory usage and it seems to be pretty tricky stuff at times but here's my take on how QVS works with RAM:
1. When you start the QVS service it checks with the OS how much RAM is available and makes a reservation for both the Low and the High Set limit. (By default 70% and 90%). The reservations are different from actual allocated memory and can't be seen in the Task Manager for example. If you set your QVS logging to High/Debug you should see the set reservations in the Event.log.
2. As long as the usage stays below the Low limit, QVS will keep cacheing all selections and calculations made in all open documents and not release this from RAM. This can be a bit confusing if you don't know what's going on but makes perfect sense. There's no use in having unused RAM on the machine doing nothing, so QVS uses it to cache data which will improve the response time and experience for all users who might look at the same data with the same selections. Document timeout is still respected and if a doc hits the timeout limit (by default 1440 minutes in QEMC) it will be unloaded from RAM and release some memory in the Task Manager.
3. Once QVS hits the Low Set Limit, I think it sticks to cacheing only a certain percentage of calculations.
4. If the QVS hits the High Set Limit it will try to keep itself alive by starting to drop parts/all of the cached calculations in order to free up more RAM. It might still be possible to spike the memory usage on the machine by opening some large documents with a data model/UI that expands heavily in RAM.
Anyway, I might be a bit off here, but the bottom line is, there's no need to worry about QVS using a lot of RAM, it is designed to. For optimal performance it needs to sit on a dedicated machine so it doesn't have to struggle for resources with other memory intensive applications. Since there's no point in having a lot of unused RAM, it wants to take advantage of all the resources available to provide a better experience for the end user. Hope this makes sense.
Thanks a lot for such a nice detailed explanation. But there is a question, you wrote it's YOUR TAKE. Which lowers the confidence of mine - if i know the right thing or not. QlikTech should come up with their official explanation and verification in such doubts.
Anyway, by the time I would prefer to go with your explanation.
Once again thanks for such a great explanation.
Not sure if you still able watch this thread, my question is if a document timeout is set - will the document be still in RAM even if its not used if the working set limit is not set?
Is there a way to find out how much of RAM is used by which dashboard and how much of it is Globla vs User Cache,
Thanks a lot,