Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to free virtual memory that gets allocated to a qlikview application?

Hi All,

As per the Qlikview Server memory management if the qlikview application needs more memory to perform calculations or the performance slows down, it would swap some of the physical RAM to virtual memory.

I wanted to know how to release this memory:

1. Does closing the Qlikview application free the memory?

2. Does signing-off from the server by the developer free up memory? or

3. Do we need to restart the qlikview services (all 5) to free up memory?

Would appreciate any help.

Regards,

Janaki Venkitasubramanian

8 Replies
Peter_Cammaert
Partner - Champion III
Partner - Champion III

Three short answers, because I don't know whether you're talking about the QlikView services, QlikView desktop or both on the same server:

  • QVS will never release the memory it used before (at least not all of it). The big chunk it keeps for itself may be empty however, because QVS has its own memory manager. This is simply a safety measure to avoid memory starvation whenever possible.
  • QV Desktop will release most of its allocated memory when you close the opened document(s), reduce the data in these documents or simply close the application. All memory is released.
  • QVB (the Reload engine used by the QlikView Distribution Service) will behave just like QV Desktop. Unfortunately this means its memory allocation cannot be controlled by the QMC settings or by the QVS memory manager. This is the snake in the grass...

BTW: restarting QVS may release all allocated memory for documents displayed in the AP, but that's only a temporary measure.

Best,

Peter

ashfaq_haseeb
Champion III
Champion III

Hi,

Try by restarting QlikView services.

Regards

ASHFAQ

Not applicable
Author

Hi,

Peter is correct.

I would suggest you to make a task which is going to restart the QV services 1-2 times per day. You can track when is the best time for this by looking for the usual behavior of the users. Also, you should check that you don't have a lot of reloads eating RAM in the same time.

I have a task which restarts the QV services at 8 am and 1 pm, and it does the job.

Good luck,

Ionut

Not applicable
Author

Hi,

Thank you Peter for your reply. Currently we have both Qlikview services and Qlikview Desktop running on the same machine and developers RDP onto that machine (Dev servera). We have been having memory issues, since developers are working on huge dashboards and due to this the performance is low and sometimes the RDP session is also terminated.

Regards,

Janaki

Peter_Cammaert
Partner - Champion III
Partner - Champion III

Do you want to merge the two discussions? Or do you want to keep both threads alive? I think we're talking about the same issue in this one:

Setting Memory Limits to avoid memory starvation

jaimeaguilar
Partner - Specialist II
Partner - Specialist II

The restarting services-workaround suggested by Ashfaq is something you probably will need to do (if you're talking about releasing memory from QV Server). I've even seen/read/heard suggestions by experts telling that as a good practice you may restart QV Server (specially QVS Service), because QlikView eventually accumulates memory even if you close all apps/sessions.

I don't know if this is a QV bug, a windows bug, or just some unexpected behaviour, but in my experience I can't tell you that even if you follow all good practices you will still need to recurr to this workaround,

regards

Peter_Cammaert
Partner - Champion III
Partner - Champion III

It's not a bug, it's how the QVS service was designed: grab as much memory as you need, but never release it. Even if it is being freed up. QVS has its own memory manager. "Better be sure than sorry", me thinks.

Not applicable
Author

Hi,

The QlikView server is not built to play along nicely with others as its designed to be run on a machine with dedicated resources that are not attended to be shared with other services. The general recommendation is that you try to keep the environments (server and developer) separated to avoid this kind of behavior. 

As im fully aware that its not always possible would I recommend that you take a look at how the working set limits are set in the QVS, and if tweeking them (and by that, the internal sets for the memory management) help you. To restart the QVS service will most likely help you but will also mean that you flashes the servers cache - something that will affect the end uses experience.