Skip to main content
Announcements
Defect acknowledgement with Nprinting Engine May 2022 SR2, please READ HERE
cancel
Showing results for 
Search instead for 
Did you mean: 
EnKy23
Contributor
Contributor

Qlik NPrinting Performance

Hello,
I was wondering if the specs of my QlikSense server can affect the performance of NPrinting. I have 2 servers one for QlikSense one for NPrinting both servers have 8 CPU Cores and 32GB of Ram.

The QlikServer server spends most of it's time with 70-80% Ram usage and less than 10% CPU usage (When NPrinting Reports are not running). This then goes over 90% on both when reports are running. The NPrinting Server has on average 50% usage on both when reports are running. 

This led me to my question of is my QlikSense Server affecting the performance of my NPrinting Server.The NPrinting server produces over 600 reports daily at different intervals (Runs 3 times producing around 200 reports each time). Do my specs suit this use case? 

Thanks.

Labels (2)
2 Solutions

Accepted Solutions
JonnyPoole
Employee
Employee

"Yes" is the answer.  The NPrinting report or task execution has 3 phases and the first phase 'content resolution' is when NPrinting interacts with Qlik Sense to extra the data and images it needs to assemble the report.  Referring to my screenshot below, you can see under admin/task executions that you can click prior task executions and then look at the timestamps of each of the 3 phases of execution.  The content resolution phase is where qlik sense is influencing the performance of your report.  What NPrinting does asynchronously behind the scenes  is analagous to an end user interacting with the same Qlik Sense app in the Qlik Sense web client and downloading/export data and images from the app.  If the app renders slowly and/or  the download/export is slow, it could be because of a number of performance impacting factors such as data model design, data volume, App object design, expression complexity, or in some cases the the server(s) is underpowered.  For general 'app performance' I recommend following best practices to optimize the app first, and then when you have it ideally optimized, scale out the architecture vertically or horizontally depending on the need. If you don't optimize the app first by following a long list of best practices, you may find yourself throwing money at the problem by needlessly scaling the architecture.  Hope this helps.

 

JonnyPoole_0-1708710051012.png

 

View solution in original post

Lech_Miszkiewicz
Partner Ambassador/MVP
Partner Ambassador/MVP

Hi @EnKy23 

@JonnyPoole gave you all information required. I will add to it one thing - I always say that NPrinting development is 90-95% of Qlik Sense development which includes:

  • if the app is as big as yours creating separate app only for NPrinting
  • data reduction of the app to absolute minimum required. That includes aggregation of the data to the level required in your NPrinting report
  • keeping only required objects in the app (with Qlik Sense that is mainly for easy of maintanance and practicality)
  • making sure data model follows best practices
  • designig your app to esure there is no wait for any chart calulcation.
    • if you open your app and you are waiting for objects to calculate each time you apply selections or open new sheet then your app is not at its best. I know this is a high ask but QS app performance is a key here.

Lastly reagarding your server spec - I normally observe howare CPU and RAM utilized on both servers in peak times. Typically you would need more CPU / RAM power on Qlik Sense side as that server does heavy lifting job. What you have for NPrinting I consider as a "Large/Powerful" NPrinting server.

cheers 

cheers Lech, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful to the problem.

View solution in original post

5 Replies
JonnyPoole
Employee
Employee

"Yes" is the answer.  The NPrinting report or task execution has 3 phases and the first phase 'content resolution' is when NPrinting interacts with Qlik Sense to extra the data and images it needs to assemble the report.  Referring to my screenshot below, you can see under admin/task executions that you can click prior task executions and then look at the timestamps of each of the 3 phases of execution.  The content resolution phase is where qlik sense is influencing the performance of your report.  What NPrinting does asynchronously behind the scenes  is analagous to an end user interacting with the same Qlik Sense app in the Qlik Sense web client and downloading/export data and images from the app.  If the app renders slowly and/or  the download/export is slow, it could be because of a number of performance impacting factors such as data model design, data volume, App object design, expression complexity, or in some cases the the server(s) is underpowered.  For general 'app performance' I recommend following best practices to optimize the app first, and then when you have it ideally optimized, scale out the architecture vertically or horizontally depending on the need. If you don't optimize the app first by following a long list of best practices, you may find yourself throwing money at the problem by needlessly scaling the architecture.  Hope this helps.

 

JonnyPoole_0-1708710051012.png

 

EnKy23
Contributor
Contributor
Author

The app is very bulky (it deals with millions of rows of data and has many tables which are within containers), is there a way to check if the app follows best practices? 

JonnyPoole
Employee
Employee

I suggest deploying the 'App Metadata Analyzer'. It will highlight the 'heaviest' tables and fields in your data model and allow you to make the decision to remove them or make them less granular. For example a timestamp field is made far less heavier but flooring and removing the time component of the timestamp (IE:  floor([TimestampField]).  https://help.qlik.com/en-US/sense-admin/November2023/Subsystems/DeployAdministerQSE/Content/Sense_De...

I highly recommend Rob Wunderlich's QSDA Pro utility to assess optimizations of Qlik apps too https://easyqlik.com/qsda/download/ . 

Lech_Miszkiewicz
Partner Ambassador/MVP
Partner Ambassador/MVP

Hi @EnKy23 

@JonnyPoole gave you all information required. I will add to it one thing - I always say that NPrinting development is 90-95% of Qlik Sense development which includes:

  • if the app is as big as yours creating separate app only for NPrinting
  • data reduction of the app to absolute minimum required. That includes aggregation of the data to the level required in your NPrinting report
  • keeping only required objects in the app (with Qlik Sense that is mainly for easy of maintanance and practicality)
  • making sure data model follows best practices
  • designig your app to esure there is no wait for any chart calulcation.
    • if you open your app and you are waiting for objects to calculate each time you apply selections or open new sheet then your app is not at its best. I know this is a high ask but QS app performance is a key here.

Lastly reagarding your server spec - I normally observe howare CPU and RAM utilized on both servers in peak times. Typically you would need more CPU / RAM power on Qlik Sense side as that server does heavy lifting job. What you have for NPrinting I consider as a "Large/Powerful" NPrinting server.

cheers 

cheers Lech, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful to the problem.
Ruggero_Piccoli
Support
Support

Hi,

I would like to add to the great suggestions by @JonnyPoole and @Lech_Miszkiewicz that also the structure of the template impacts on the performances. I suggest you to limit the number of Pages and/or Levels in particular nested levels because each distinct value of a Leve and PAge is a filter that need to be applied, sent to Qlik Sense and wait for the results. 

Best Regards,

Ruggero



Best Regards,
Ruggero
---------------------------------------------
When applicable please mark the appropriate replies as CORRECT. This will help community members and Qlik Employees know which discussions have already been addressed and have a possible known solution. Please mark threads with a LIKE if the provided solution is helpful to the problem, but does not necessarily solve the indicated problem. You can mark multiple threads with LIKEs if you feel additional info is useful to others.