Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello all,
Case
NPrinting environment composed of a server dedicated to NPrinting Server and a second node dedicated to NPrinting Engine. NPrinting connections are all to Qlik Sense applications.
Questions
Why should I prefer to install a second Engine node instead of increasing the CPUs of the existing node? Is there any real advantage?
In an environment with two nodes, is the generation of a task taken care of entirely by one node or is it distributed?
Regards
Good morning @andregas
No two environments are alike, each with its own intricacies and complexities.
Keeping the engine on a separate server enables maximum engine performance in larger environments. 'Larger' is also a relative term.
So no do not 'need' to use a second server to run the NP engine but it can be an easy performance boost 'if' needed.
Or you can leave it right where it is (on the same server as the NP server) if you aren't having performance challenges.
If separating the NP engine and server is not enough, due to high system usage, a second engine would be useful to consider.
Many deployments use NP engine and server on one computer then add a second engine on a dedicated computer as needed.
Again there is no formula for this. Anecdotally, if your CPU's and RAM are above 60 or 70 percent regularly, this would be a good time to consider adding additional engine or at the very least, more RAM. Adding RAM is the best 'quick fix' solution in most performance cases as we have found over the many years of NPrinting service. We've found usually sufficient CPU's but insufficient ram to support the volume of CPU's and there CPU processes therein. But again, it all depends on your environment, daily usage and system configuration.
Adding additional engine nodes does certainly allow you to distribute the task job load among both engines concurrently so 'yes/distributed' to answer your question re "is the generation of a task taken care of entirely by one node or is it distributed?"
In a multi-engine installation, at least two engines are installed on separate computers. The scheduler distributes the workload among available engines
Information regarding general performance.
Kind regards...
Hello @Frank_S
Thanks for the answer but I didn't understand the answer about the second engine: why should I prefer to activate a second engine node instead of doubling the resources of the existing node?
Regards
What is the challenge you are facing on current nprinting architecture?
There's no challenge. I want only compare the benefits of two nodes instead of one bigger x2.
In my opinion, adding a second server increases the robustness of the environment (if one engine node crashes the other one continues to work), however I do not expect performance improvements compared to having the resources x2 on a single node.
Let's remember that my example only has connections to Qlik Sense and I am not interested in discussing the performance on the Sense side.
If I personally had an NPrinting environment that run purely on physical machines, I would install the Engine on a dedicated server and then install the NP server on another. This will give each server it's own hardware including fans to cool each system independently.
Otherwise I might just installed everything on a single computer and add additional CPU and RAM accordingly. This for example if I was using virtual machines and would let Jeff bezos cool those machines for me :).
Others here might have their own unique preferences as well.
Yes @Frank_S, in my case I suggested the use of a node for NPrinting Server and a second dedicated node only for the Engine.
My question was about NPrinting engine nodes. Let me give you an example.
Current environment:
I want to upgrade the environment, which of the two following solutions will be better and why?
Regards
In my 'opinion' you are too low on RAM.
But that still depends on your NPrinting usage day-to-day, complexity of reports and underlying apps etc.
I am not in the field so I am simply not the best resource to assist you. If you need a deeper, more thorough recommendation, I suggest you work with our professional services team at Qlik. You may arrange an engagement via your Qlik Partner management if you wish.
They have the real world tools and experience to evaluate your customer's environment as a whole via in iterative implement plan and requirements gathering process.
I will share below with you. This is my test environment. Use at your discretion:
1. Windows domain controller: 2 CPU's 4 GB ram
2. NPrinting server and engine: 8 CPUs and 128 to 256GB ram (depending on complexity of NP database and apps provided by the customer for the purpose of troubleshooting issues.
3. Qlik Sense server: 8 CPUs and 128 to 256GB ram (depending on complexity of NP database and apps provided by the customer for the purpose of troubleshooting issues.
4. QlikView server: 8 CPUs and 128 to 256GB ram (depending on complexity of NP database and apps provided by the customer for the purpose of troubleshooting issues.
It doesn't stop there either. When you have large QVWs or QVF that are double digit on disk, this will grow 'in memory' exponentially when accessed by NP connections. Thus even higher RAM and CPU may be required. So again it depends on the customer environment as there is no 'one size fits all' solution. Qlik Professional services are your best bet to assist you from here if you require further guidance.
Kind regards.
It's just an example, this is not the real deploy.
However, I specified that in my example NPrinting only uses QlikSense connections. I can assure you that in this case the Engine node performs very well with a 1GB-2GB RAM per CPU configuration with a minimum of 8GB of RAM.
Exporting from QlikSense consumes very little RAM for each connection (resolver). I have never seen it go above 200MB/connection, in the end it is just a web page.