In a multi-node environment, when a certain number of task is run in quick succession, they all get sent to the same node.
This results in the the later tasks being queued rather than being sent to a free node.
(dependent) tasks are always executed on the same node.Environments:
- Qlik Sense Enterprise, versions prior to November 2019
In Qlik Sense versions prior to November 2019, running a number of tasks higher than the maximum number of concurrent reloads, required them to be scheduled with at least 5 seconds of delay between them as to allow the load balancing mechanism a chance to get updated information from each node.All chained (dependent) tasks will always be executed on the same node, regardless of delay.
With Qlik Sense November 2019, a new load balancing scheme was introduced to help mitigate this.Source: Release Notes
In previous versions of Qlik Sense, the algorithm always chose the load-balancing node with the lowest CPU load. The CPU load of all nodes was updated every 5 seconds, which might have resulted in consecutive reloads being distributed to the same node. To improve the handling of frequent consecutive reloads, the algorithm has been changed to select the node with the lower number of running tasks per "Max concurrent reloads" setting, tracking this value on the scheduler master node.
This improvement is enabled by default. If you wish to disable it, do the following:
- Open the Scheduler.exe.config, which by default is located in: "C:\Program Files\Qlik\Sense\Scheduler\Scheduler.exe.config"
- Set "DisableLegacyLoadBalancingBehavior" setting to false
- Restart Qlik Sense Scheduler Service
- Repeat these actions on each node of the cluster running the Qlik Sense Scheduler Service
Front-end Load Balancing in Qlik Sense