Memory usage of the QlikView Server Service continues to increase as the server is being utilised. Not all RAM is being released as expected, even as no users are active on the server and documents are unloaded from memory. Environment:
QlikView any version
This is working as expected!
QlikView’s memory usage can be broken up into two main categories:
This consists out of internal data structures, each document’s database, definition of GUI, every user’s session state etc. This will be unloaded from memory when the document timeout is reached.
Results of calculations previously carried out to avoid recalculating. This memory can theoretically be lost and recalculated each time, but it will not be released once the document timeout is reached
. Instead, QlikView will use the Working Set Limit defined to manage memory usage.Working Set Limit:
By default, each QlikView Server is set to a Low Working Set Limit of 70% and a High limit of 90%. The QlikView Server Service will try to use physical memory exclusively and not use the Page File at all up until the Low value is reached.
Once the Low value is reached, QlikView will begin discarding old cache data and replace it with new where possible. QlikView will also signal Windows that it can begin using the pagefile if necessary.When the High working set limit is reached, QlikView will try to stop caching data altogether. Note that at this point issues with the services will begin to arise (performance/stability problems). The QlikView Event log will usually shed light on that and help identify whether or not you might require more memory or not.
For more detailed references (How do Windows and QlikView handle the Page File? What is a Working Set Limit?) please refer to Article Qlik Engine Memory Management
For more information on troubleshooting steps, as well as errors logged in the QlikView Server Event log, refer to "Warning WorkingSet: Virtual Memory" Error in QlikView Server Event Logs