Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello all,
How does Qlik Sense Load Balance CPU, RAM, Users in a multi-node environment?
We have a multi-node environment where we can see sometimes Server 1 CPU spikes, sometimes Server 2 spikes in RAM, sometimes one of the servers spiking in handling concurrent users. I am taking this info from Monitoring Apps.
How does Qlik decide which server to utilise when it comes to these resources/activities?
We have all 5 services enabled in each node.
Hi @mwallman ,
Have a look at the Qlik Support article "Load Balancing in Qlik Sense".
More information can be found on the Qlik Sense help site here.
Hope this helps.
-Chip
It's ultimately pure round robin. But to give it some technical color, let's break this down into it's components. When a user opens the Hub there are the following dependencies:
So in a scenario where a user accesses a virtual proxy, there is an array of available Engines.
Bringing it back to the crux of your question, it's round robin so there are scenarios where Engines can be overloaded. In these scenarios, it can be advantageous to explore pinning applications to nodes. Typically this is done for the largest apps or for a specified stream. With app pinning, you can ensure that 1 to many Engines solely deliver requests for those apps. This increases the re-use of cache rather than diffusing the consumption of those apps across all the available Engines.
In terms of determining which apps to target, generally folks know what their largest apps are, but a tool like https://github.com/eapowertools/qs-app-metadata-analyzer/ can be used in a pinch. Now the RAM measurement that it provides is purely based on the data model and not the visualization layers, so note that. But it's good enough for a first approximation of things. It also does a good job of visualizing the effective result of the interaction of the load balancing rules in the environment.