Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All,
i am new in server arena.
i think i have some issue with server SETTING. When i restart QVS service, my RAM comes down to 4-5 GB. With every user logs on, it increses by about 100MB. But at the end of the day, RAM usage keeps increasing to 50GB even though there are only 4 users logged on at that time. May be QVS not releasing memory once users logs out.
Can anybody suggest ? Thanks!
Regards,
tresesco
Hi tresesco,
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.
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.
-Alex
Thanks Alex for your input.
still i have the question in mind that, if it keeps on increasing the RAM occupancy, certainly it would saturate at a time. Should not there be a time when QVS would release memory if users are not logged in ?
Hi Tresesco,
I had a similar issue before. The server was a virtual machine and the issue was VMWare memory reservation (Memory Ballooning) stealing the memory. If your machine is virtual you need to turn this feature off.
Kind regards,
Footsie
Hello Footsie,
thanks for the support intension. But mine is not a Virtual machine.
check your doucment timeout setting. it might be set too high. This causes qvs too keep the opened doucments in memory
Tresesco,
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.
Regards,
Marco
Hi tresesco,
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.
Hi Johannes,
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.
Regards, tresesco
Hi,
If file is used ofen, it is in memory without the preload option.
If file is rarely used, why would you want to preload it? It just wastes resources, and taking memory away from files wich ARE in use
-Alex
www.snowflakejoins.com