Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
krishna20
Specialist II
Specialist II

Preload in Qliksense

Hi All,

My Qliksense app is taking around 3 mins to load at client side and size is around 2 GB. 

Dashboard is having 7 combo charts which are designed using Pick Match functions.

The first user that enter to this module suffer from a long loading time,

and also a user that do the first selection for a certain dimension.

I encounter on the QS documentation in the option of "cache warmer" [link below]

https://help.qlik.com/en-US/sense-developer/February2020/Subsystems/NetSDKAPI/Content/Sense_NetSDKAP...

Does anyone used that? Is it helpful? how can we run it on our server? 

Could anyone please advise me ?

@Michael_Tarallo , Henric_Cronströmsunny_talwar, 

Regards

Krishna

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Yes, you can definitely use the cache warmer in your environment.

However, you first need to understand why the app takes 3 minutes to load: is it network activity, security, limitations on the laptop browser or resources...? Do you see the same when you open the app in your laptop? And when you open the app in the server itself? And if you export the app and open it locally in your computer?

Applying the cache warmer can be extremely beneficial for a set of use cases when you know that aggregations and caching are what takes longer.

But it will do little if, as I have seen quite extensively, the network is slow between the user laptop and the Qlik Sense server, for example.

Cache warming may not be effective either if the app is using a poorly performing data model and expressions (very long and complex expression, variables within variables), or section access.

I'd strongly recommend you to further troubleshoot the environment using other tools such as the Scalability Tools (https://community.qlik.com/t5/Qlik-Scalability/Qlik-Sense-Scalability-Tools/gpm-p/1490846 - to simulate the load without static contents) and monitor the activity on the server side using the App Metadata Analyzer (https://help.qlik.com/en-US/sense-admin/April2020/Subsystems/DeployAdministerQSE/Content/Sense_Deplo...), the Telemetry Dashboard (https://support.qlik.com/articles/000044757) or the System Performance Analyzer (https://help.qlik.com/en-US/sense-admin/April2020/Subsystems/DeployAdministerQSE/Content/Sense_Deplo...) as well as Windows own Performance Counters (see a summary explanation here http://www.appadmintools.com/documents/windows-performance-counters-explained/ but plenty of other resources out there) before making a decision on what is the best approach.

View solution in original post

6 Replies
Miguel_Angel_Baeyens

Yes, you can definitely use the cache warmer in your environment.

However, you first need to understand why the app takes 3 minutes to load: is it network activity, security, limitations on the laptop browser or resources...? Do you see the same when you open the app in your laptop? And when you open the app in the server itself? And if you export the app and open it locally in your computer?

Applying the cache warmer can be extremely beneficial for a set of use cases when you know that aggregations and caching are what takes longer.

But it will do little if, as I have seen quite extensively, the network is slow between the user laptop and the Qlik Sense server, for example.

Cache warming may not be effective either if the app is using a poorly performing data model and expressions (very long and complex expression, variables within variables), or section access.

I'd strongly recommend you to further troubleshoot the environment using other tools such as the Scalability Tools (https://community.qlik.com/t5/Qlik-Scalability/Qlik-Sense-Scalability-Tools/gpm-p/1490846 - to simulate the load without static contents) and monitor the activity on the server side using the App Metadata Analyzer (https://help.qlik.com/en-US/sense-admin/April2020/Subsystems/DeployAdministerQSE/Content/Sense_Deplo...), the Telemetry Dashboard (https://support.qlik.com/articles/000044757) or the System Performance Analyzer (https://help.qlik.com/en-US/sense-admin/April2020/Subsystems/DeployAdministerQSE/Content/Sense_Deplo...) as well as Windows own Performance Counters (see a summary explanation here http://www.appadmintools.com/documents/windows-performance-counters-explained/ but plenty of other resources out there) before making a decision on what is the best approach.

Levi_Turner
Employee
Employee

The help link that you referred to is merely an example of how to build your own cache warming application using the Qlik Sense Enterprise .NET SDK. My team has covered a handful of other pre-built solutions here, which are generally ideal for most customers.

I'd cosign @Miguel_Angel_Baeyens recommendation to look into tuning the app as well. If there are fundamental design issues with the app, preloading is merely masking the symptoms, not fixing the root cause.

krishna20
Specialist II
Specialist II
Author

Hi 

 

Miguel_Angel_Baeyens

Pick() and Match() are conditional functions, not aggregation functions (Sum, Count, etc.), so using those in a chart or KPI can cause performance issues.

However, that alone is not a factor: the length of the expression, the number of datapoints or rows and columns displayed, chart conditionals if there are any, variables and their contents, extensions, themes...

But again,

  • Do you see any difference by opening the QVF locally with Qlik Sense Desktop in your computer and when opening in the server?
  • Does it load faster if you open the app in the same Qlik Sense server where Qlik Sense is installed (so no network traffic here)?
  • Does it happen to all users or a subset of users?
  • It uses 2GB in disk or is that the memory footprint?
  • How CPU and RAM behave when you open the application for the first time?
  • Did you run any of the apps mentioned above and if you did, what are the results?
  • Does it happen only with your app or to any app?
  • If you remove all sheets and objects, so there is only the datamodel, is takes the same time as well?

By answering these types of questions you will be more informed as to know what could be the issue or issues causing that delay.

krishna20
Specialist II
Specialist II
Author

Hi 

Yes, I have used variables in expressions which are holding in master flat file.

Please find my inline comments and advise

  • Do you see any difference by opening the QVF locally with Qlik Sense Desktop in your computer and when opening in the server?  Yes , have tried locally, but the same issue. Infact in locally it is taking much time to load since i am having only 8 GB RAM. Max I set time counter in cloud and doing the changes.
  • Does it load faster if you open the app in the same Qlik Sense server where Qlik Sense is installed (so no network traffic here)? No, I am not having server right to work there.
  • Does it happen to all users or a subset of users?  Yes, All users are having same issue.
  • It uses 2GB in disk or is that the memory footprint? No logs in hand to monitor, since not having access to servers.
  • How CPU and RAM behave when you open the application for the first time? No idea. Since we are working in DEV cloud ,no chance to monitor the CPU spikes.
  • Did you run any of the apps mentioned above and if you did, what are the results? Found the unused fields, time taking charts. Have removed unused fields max and working on expressions. Could you please suggest any alternate functions that we can use instead of Pick match.
  • Does it happen only with your app or to any app? Yes. The other apps also used pick match functions and it is loading in <5sec. My app size is 3GB and the other one is 1.3GB.
  • If you remove all sheets and objects, so there is only the datamodel, is takes the same time as well? It is loading fast.
Miguel_Angel_Baeyens

Looks like it is development related, so making charts lighter the app should load faster, because when all objects are removed, even if it uses 3GB in disk, it is loading fast.

It is difficult to go ahead with any further suggestion without knowing the requirements and the data model, as well as the CPU/RAM/Windows data to be able to measure how well each object behaves.

In general, Pick/Match functions can be replaced by flags in the script. The reload time will be longer but the UI will be lighter.