Performance
The performance of your Qlik NPrinting system will depend on a number of factors. When planning your deployment you must consider:
- the size of your deployment
- the number of Qlik NPrinting Engines needed
- the type of connections you plan to use
- the number CPU cores required for each Qlik NPrinting Engine
- the amount of RAM required for Qlik NPrinting Engine computers
Performance guidelines
To size your installation, consider the following:
- number of Qlik NPrinting Engines
- number of CPU cores for each Qlik NPrinting Engine
- amount of RAM required for Qlik NPrinting Engine computers
Use this information to help you plan your system.
Number of Qlik NPrinting Engines
Increasing the number of Qlik NPrinting Engines associated with a Qlik NPrinting Server will result in a linear increase in performance. For example, if you move from an installation with two Qlik NPrinting Engines to an installation with four Qlik NPrinting Engines, the time to create and deliver the same set of reports is divided by two. The total amount of time necessary to deliver a set of reports can also depend on external factors, such as the performance of your SMTP server.
Number of CPU cores for each Qlik NPrinting Engine
The performance impact of the number of CPU cores depends on whether the reports are based on connections to QlikView or Qlik Sense.
When you create reports from Qlik Sense connections, performance increases linearly with the number of CPU cores added. For example, if you move from a four core CPU to an eight core CPU, the time to create the same set of reports is divided by two. The total amount of time necessary to deliver a set of reports also depends on external factors, such as the performance of your SMTP server. There is no upper limit to this relationship if your connections are exclusively to Qlik Sense apps.
When you create reports from QlikView connections, performance increases linearly with the number of CPU cores added until you reach twelve cores. If you exceed twelve CPU cores, the increase is no longer linear. The change in performance occurs because Qlik NPrinting Engine launches an instance of QV.exe for each CPU core and uses QlikView bookmarks to apply filters. QlikView bookmarks are written to a file, so for each CPU core there is an instance of QV.exe that needs to read and write to the same file. Conflicts while accessing the bookmark file can cause a noticeable decrease in performance when you exceed twelve QV.exe instances or twelve CPU cores. If you plan to connect only to QlikView documents, we recommend that you install Qlik NPrinting Engines on physical or virtual computers with a maximum of twelve cores. Connections to Qlik Sense apps are not impacted by this limitation.
Qlik NPrinting can create reports with data from QlikView and Qlik Sense connections at the same time. There are currently no performance test results available for this scenario.
RAM required for Qlik NPrinting Engine computers
The amount of RAM required for Qlik NPrinting Engine computers depends on the QlikView documents you use to create reports. On a Qlik NPrinting Engine, each instance of QV.exe opens a single QlikView document. For example, if your Qlik NPrinting Engine server has four CPU cores it means that it runs four QV.exe instances which in turn open four QlikView documents. You need enough RAM to adequately manage these four QlikView documents to ensure good performance.
Deployment examples
The following examples outline some basic architecture and hardware options for scaling an Qlik NPrinting deployment.
Single-engine (small)
This example is a minimum specification consisting of a single Qlik NPrinting Server with web engine, scheduler and repository installed on the same server.
- 1 Qlik NPrinting Server
- 4 CPU cores
- 32 GB RAM
Single-engine (medium)
This example has more CPU cores but also consists of a single NPrinting server with web engine, scheduler and repository installed on the same server. As demand increases more CPU cores can help to improve performance.
- 1 Qlik NPrinting Server
- 8 CPU cores
- 32 GB RAM
Multi-engine (large)
As your needs increase to produce a larger number of reports, scalability becomes increasingly important. This example consists of a single NPrinting server but three NPrinting engines to improve performance and scalability.
- 4 servers (1 Qlik NPrinting Server, 3 Qlik NPrinting Engines)
- 12 CPU cores for each server
- 32 GB RAM for each server
See: Multi-engine deployment example: Large volume deployment of Excel reports from QlikView
Troubleshooting
Possible cause
There are several factors that may cause performance loss.
Proposed action
- Check the hardware resources of the Qlik NPrinting Engine computer.
- If you are connecting to QlikView documents, make sure that the QlikView computer has enough resources to manage the source documents.
- Check the QlikView source document:
- Does it take a long time to open it and to apply a filter in the Qlik NPrinting Engine? Save the .qvw with all charts minimized to decrease the opening time.
- Create a QlikView document or a Qlik Sense app solely for Qlik NPrinting reporting. Clone the original and remove all unnecessary data.
- Where possible, move calculated fields from charts to a script. Every time you apply a filter, these fields are recalculated.
- Report generation time depends on the number of Levels and Pages in the report. Every value in a level or page is a filter, so you must wait for filter calculation. Use Excel pivot tables in reports, instead of using levels.