7 Replies Latest reply: Mar 17, 2015 5:20 AM by Frédéric Villemin RSS

    How to prevent performance problems on a server ?

    Frédéric Villemin



      I have a Qlikview Server 11.2 SR5 and around 20 documents. Some are big, some are small.


      We have a small document (10MB) which is used by many people who sometimes create their own chart on web. The problem is they sometimes mix historical data with current data and Qlikview doesn't like that.


      Today we have an example of the server using 30GB memory for all documents, and after one creation of a bad chart on this document, it went to 56GB and started to behave not correctly (server is 64GB)


      We don't want to remove the ability for users to create their own charts.


      What can i do ?  is there a way to set a maximum calculation time on all charts to avoid a badly made chart to start pumping all memory ?

      Is there a way to limit the amount of memory for a specific document on the server ?

      What can i do when i get the message of Critical Memory used ? the server becomes quickly unstable and must be restarted. Is this normal ? is there a way to avoid that ?



        • Re: How to prevent performance problems on a server ?
          Peter Turner



          There is a setting in the QMC called ‘Object Calculation Time Limit’ which defaults to 60 seconds which you could try and reduce.

          You can also set the working set limits of the QVS, but these are not fixed limits and as you've seen you will get Critical Memory warnings in the logs when the QVS needs to use more resources.


          Otherwise the options are limited, you could look into:

          Turning off some users ability to make their own charts, and get a 'developer' to create them instead.

          Turn the ability off for all users and make the charts part of the standard application.

          Add resilience into the document to try and stop any bad data linking from using all the servers memory.

          Maybe even set-up a separate QlikView Server for the users to create their own charts on.


          I’d be interested to know how/if you managed to resolve this situation.

            • Re: How to prevent performance problems on a server ?
              Frédéric Villemin

              Thanks for your reply.


              You know, i'm really surprised the main solution Qlik has provided me was to set a new server or train people to avoid doing strange things. It would probably be easy to fix limits on a per-document basis.


              What we have done : we have turned off ability for users to create charts .. really silly move but we had no choice.

              I have lowered the Object Calculation Time Limit but i'm afraid the memory can grow very high within even 30 seconds.


              I have seen the other answers and no i don't use the Governance Dashboard but I will give it a look


                • Re: How to prevent performance problems on a server ?
                  Peter Turner

                  Hi Frédéric,


                  Did you contact Qlik support and get the same suggestions as my earlier post? I would have hoped there would be a 'hidden' setting or suggestion to help resolve this.


                  I agree it would be nice to be able to set a memory limit per document, but as its not possible at present, would it be feasible to create a second version of one of your documents?

                  The first document could have the entire dataset with the user customisation disabled, and the second document with the setting enabled but with a reduced dataset (such as current year instead of all possible years).

                  This would help stop the document growing too large for the server, whilst allowing the users to do some custom/specific analysis?

                    • Re: How to prevent performance problems on a server ?
                      Frédéric Villemin

                      No the support only told me to train people or add a server

                      I don't find the Support really useful in most of the cases. Only once they gave me a tip to be able to correct myself a JS bug while waiting for the official fix but otherwise i don't expect anything better than what the community provides here.


                      Yes we could have two documents. We just wanted to do something as simple as possible and without giving the users a smaller document.

                      • Re: How to prevent performance problems on a server ?
                        Adam Barrie-Smith

                        I am sorry for your experience with support - it should not be that way and we have found it good.  You can escalate and I think you should push to increase the quality as the guys at Qlik really want to be rated as excellent.


                        The trouble with creating server objects is already clear from your original post.  We don't allow collaboration on all QVWs, only on those with "safe" schemas ie star schema.  In some cases we will use the TAG fieldname AS $hidden to try hide fields the users should not use (you might try this with your history tables).


                        From 11.2 SR4 the whole mechanism is more stable but you still have to design to allow "safe" usage.


                        Qlik have given powertools to help identify bad objects in the .SHARED.


                        We also create a hidden sheet in our QVWs that contain a list of template charts - we then train the users to drag these out and change dimensions/expressions - rather than the user starting from scratch.


                        One of our customers who does this on a 45Gb QVW has a monthly routine where they visit the users creating a lot of objects to see which should be built into the QVW.


                        It is a tricky functionality, many good points but it does require management.  All the best, Adam

                  • Re: How to prevent performance problems on a server ?
                    Thierry Theyskens

                    Do you use the governance dashboard?


                    I'm took the habit to use it. I stumbled upon the fact that some objetcts have a huge complexity and was able to prevent the user to make the memory explode. You're then able to find "bad charts"