Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE

Best Practices of Qlik Sense Multi-Node Setup, Load Balancing & Maintenance(Let's Discuss Here)

100% helpful (2/2)
cancel
Showing results for 
Search instead for 
Did you mean: 
rohitk1609
Master
Master

Best Practices of Qlik Sense Multi-Node Setup, Load Balancing & Maintenance(Let's Discuss Here)

Last Update:

Jun 7, 2019 8:30:22 AM

Updated By:

rohitk1609

Created date:

Dec 18, 2018 4:06:14 AM

Attachments

Hello Everyone,

First of all, thanks for reading! I found it is amazing to connect myself to people around the world and communicate with my writings.

This page is indented to discuss best practices for  Multi-Node Setup & Load Balancing primarily, You may drop your use case or problem in comment, we will provide you best possible solution instantly.

Below content guide you to set up Multi-Node Qlik Setup & Load Balancing. It will help you to know Qlik technical terms, ask question more precious way which will help usor anyoe to provide solution more accurately.

Business intelligence is an agile process, gradually BI solution changes and updates. Enterprise grows so are data and end users.

When data grows and business logic gets complex, we need more resources to calculate the result and serve to users. Afterwards, Single Node (small) site performance decreases with time which could lay down the credibility and quality of BI solution.

Multi node site is  Qlik site(could have multiple Qlik servers ) where load is getting managed between more than one system and could have more than one  Fai-lover Candidate which takes charge in absence of central node automatically.

Note: we can have multiple fail-over candidates in one site, we call it passive central.

There are certain parameter which help you to take decision whether we should move to multi node site or remain on single node.

https://help.qlik.com/en-US/sense/June2018/Subsystems/PlanningQlikSenseDeployments/Content/Deploymen...

So below content is for such users who have made mind to upgrade their Qlik site to multi node.

Few naming conventions we will follow in below content:

  1. Consumer node: which must has proxy service enable
  2. Scheduler node: which has scheduler and engine services are enabled
  3. Central: which is controlling whole Qlik site.
  4. Failover Candidate(Passive central)
  5. Resources: RAM and Cores(virtual cores)

Since June 2017 , installation setup has shared persistence way only where Apps and RepoDB data stay at persistence layer and both are shared with other nodes (rim or child).

Now why do we need to share Apps and Repository data with child or rim nodes?

Answer: to manage load in simple

Next Question: what exactly we share to balance the load practically?

Answer: Resources in Qlik site.

Next Question: what will be achieved if we share the resources?

Answer: Reduce the resource consumption while end users are accessing apps from one node i.e. central to consumer node (proxy service is must) and reduce the resource consumption and distribute it to scheduler node (scheduler and engine service is must) while any app reloads.

There could be many scenario how you would design your multi node site:

  1. You want one central and one consumer and one scheduler node.
  2. Two scheduler and two consumer and central
  3. Central and scheduler node.

 

Ideally: Two scheduler and two consumer and central node comes in best practice for extra large enterprise.

You can read about single node, small, medium , large and extra large Qlik shared site in detail:

https://help.qlik.com/en-US/sense/February2019/Subsystems/PlanningQlikSenseDeployments/Content/Sense...

Multi node site would increase your Qlik Sense site availability, how?

We have a concept fail-over candidate, which is one of the scheduler node or such node which has all services and take charge automatically while Central node is down. We can manipulate the sensing time of failover candidate to central node in latest version.

 

Solutions which will guide you to deply multi node side

  1. How to Install multi node site:

Installation of Multi Node site

Installing Qlik Sense in a multi node site - Qlik Sense

Qlik Sense September 2017 - Installing Qlik Sense in a multi-node site

 

  1. How to configure multi-node site:

         Configure a multinode installatio

       2.  Load balancing:

      Adding load balancing

       Load balancing

       Configuring load balancing to isolate development nodes

          3. Fail-over candidate

Fail- candidate or we can call it passive central node which is ping in a set time(you can customize it below 10 minutes) to central or master node and when it doesn't get response it will take charge and become active central or master node.

Note: Where you install your postgresDB during installation that server has one extra service Qlik Repository Database which is running the postgresDB. So in case you don't have a dedicated persistence layer and installed Repo DB on central node(any server which has Qlik Sense too) then if your central node get down due to power failure or blue screen then fail-over node won't take charge. 

Primary condition of fail over concept needs QlikSenseRepositoryDatabase to be run all time. if QlikSenseRepositoryDatabase is down then whole site is down. 

One important application is attached to article which helps you to review your Qlik site. If you  have any concern over Qlik repository size, QLogs DB size or any component which is accessing excess size than expected, then download the app, import to your Qlik Sense, open it on HUB, there will be three connection which come along with application i.e. PostgreSQL_postgres, PostgreSQL_QLogs and PostgreSQL_QSR. Update password with your super user password of postgresDB which you entered during installation and save it. 

If your user name added as postfix after updatation of connections , go to QMC and make it as they were earlier.

Please do above activities by RDP not from end user side. Reload the app and share it with me so I can review it.

 

After utilizing above solutions, please post your queries in comment section what is your use case i.e. how many servers are available, how your user comes to site, network load balancer is available or not, reloads are executing on scheduler nodes etc.

In general, multi node or load balancing concept is vast and vary with client to client, so I do believe you may ask question much better when you understand the right terms of Qlik, went through above articles and requirements are clear.

Consider this resource as a open form where we all can post our queries on load balancing and multi node site.

There are few other documents which would help you in Qlik administration

1.Dynamic Sheet Exception With Stream and App Level Security

2.Sheet or App Object Level Security Qlik Sense

 

Reach to me if there is need of any clarification or need assistance with kumar.rohit1609@gmail.com

Follow my profile on LinkedInhttps://in.linkedin.com/pub/rohit-kumar/2b/a15/67b,

Add yourself to a great community of Qlik People on Facbook 

Add yourself to Qlik intellectual people group on Facebook:

 

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

 

Thanks,
Rohit Kumar

 

 

Comments
mjperreault
Creator
Creator

Hi @rohitk1609 ,

 

Thanks for your response. I am not sure I understood this piece 

To ensure all loads will be at Active Central node make the concern node or failover node  slave only for the time being, when passive central node will become active central, its status will be changed to Master only or master and slave only and reloads will happen on it till you don't make the old central node up and make it master again then set the fail over scheduler back to SLAVE.   

If I set my the scheduler in my failover node to be SLAVE and leave the scheduler on my Central Node to be Master and Slave won't my failover node execute reloads in a round-robin fashion? I want all reloads to be executed on the Central node.

 

Thanks,
Mark

0 Likes
rohitk1609
Master
Master

I am sorry I missed your point and written a wrong thing. yes if it is set to slave , reloads will execute on it. Long story short, if you force apps to execute on current central once all reload will happen on central node but when central node will fail then your reloads will fail due to load balancing rule.

Making a consumer node a passive central node is wrong practice.

Please reach out to me at kumar.rohit1609@gmail.com

 

Thanks,

Rohit

0 Likes
fantong3
Contributor
Contributor
Hi @rohitk1609 , Thanks so much for sharing all the information. Currently we have a 2 Nodes deployment with one central and one rim (failover). We are planning add 2 more nodes while more users are accessing it. I have a few questions related to the load balancing rule and hope if you can help me with them. 1. Is that possible we perform all the heavily reload tasks (apps contain massive amount of data and needs be reload every 15mins) on a particular node only? These apps are from different streams so I assume we need to distinguish them on the app level? 2. We do not want these heavily reload tasks using any capacity from our central node, will this rule affecting other reload task accessing central node? 3. What services are required to perfume reload task only? Engine and scheduler? 4. With another team onboard, we want set up a separately node for them to access only. Once we have modified the proxy with a new url from them to login in, is that means they will only using resources form that node and the central node? They don’t have any heavy reload task needs be addressed to the reload node. Thanks again for reading all the questions. Please feel free to ask if you have any question. Thanks!
0 Likes
rohitk1609
Master
Master

Hey Fantong,

Please find my inputs below:

1. Is that possible we perform all the heavily reload tasks (apps contain massive amount of data and needs be reload every 15mins) on a particular node only? 

My answer: Yes you can sync heavy apps to one particular node only.

2. We do not want these heavily reload tasks using any capacity from our central node, will this rule affecting other reload task accessing central node?

My answer: If you sync heavy to one scheduler node it will not affect your central node.If you don't want to do any app load on central node, you can set SCHEDULAR for central to Master only.

3. What services are required to perfume reload task only?

My Answer: Repo, engine and scheduler 

4. you can add one new node for one team dedicate  and make the load balance setting as it will not affect any other consumer node

 

If a post helps to resolve your issue, please mark the appropriate replies as "Accept as Solution" or Like it.

Best,

Rohit

 

 

 

 

0 Likes
fantong3
Contributor
Contributor
Hi @Rohit1609, Thanks so much for the quick response. I ran some test on our UAT environment and found the following result. 1. I have created a rule as ((resource.name="XYZ" and node.name="Rim")), I had it ran over night for every 1 min by a reload task, turns out it was randomly distributing b/t central node and rim node for engine service(from operation log). 2. I have created another rule as ((node.name="Central" and resource.name="ABC")), reload every 1 min as the other one mentioned above and it was only assigned to central node for engine service. 3. Scheduler settings are Central=Master and Slave, Rim=Salve only. 4. Other load balancing rules: ResourcesOnCentralNode=No change made and ResourcesOnNonCentralNodes=Disabled I have no idea why my XZY rule isn't working. Does it has anything to do with the round robin algorithm? I also tried set central scheduler to Master only, but the operation monitor will take way much longer to reload and also missing some log data from the rim node. Thanks again for your help! Have a good one!
0 Likes
rohitk1609
Master
Master

Dear Fanting,

 1. I have created a rule as ((resource.name="XYZ" and node.name="Rim")), I had it ran over night for every 1 min by a reload task, turns out it was randomly distributing b/t central node and rim node for engine service(from operation log)

Rohit's input: If you want to restrict any app or any stream to a specific node you have to disable default rule ResoucesOnNonCentral then your written rule will work as you expect. So it is hard to believe that your XYZ rule is not working after disabling ResourcesOnNonCentralNodes. Round robin works when ResourcesOnNonCentralNodes is enabled. 

 

for testing purpose I have written this rule:

((node.name="Scheduler 2" and resource.stream.id="5xxxxxxx-66xx-4308-b452-xxxxxxxa12")) and my apps under above streams are loading only on Scheduler 2 node.

Note: I hope you have checked Load balancing check point in your load balancing rule.

Operation monitor app has missing some data, did you configure your operation monitor app for multi node site, if no, go to its script and you will find the setting information for it. 

If it is  taking too much time, then check the latency between Central and rim node, it is the job of IT people. Also check the resources of rim node and concurrent task at that time.

 

If a post helps to resolve your issue, please mark the appropriate replies as "Accept as Solution" or Like it.

Best,

Rohit

 

0 Likes
fantong3
Contributor
Contributor
Hi @Rohit1609, Thanks again for the lighting fast reply! Do you think any security rule may affect or override the load balancing rule? I did checked the log again and seems central node is still randomly picking up the reload work. I also want to confirm if it is necessary to set central node scheduler service to Master only to archive this app designated goal. Thanks!
0 Likes
rohitk1609
Master
Master

don't check by logs, go to tasks=> there is "i" sign in status column and check the Host Name.

0 Likes
fantong3
Contributor
Contributor
Hi @Rohit1609 I have been manually starting the task and after a few tries I got the following message which indicate it has been directed the central node. 01 is our central node. Host name: qkapp01.dc.com 2019-09-05 07:07:46 UTC Changing task state from Started to FinishedSuccess 2019-09-05 07:07:46 UTC Reference to scriptlog added 2019-09-05 07:07:44 UTC Changing task state from Triggered to Started 2019-09-05 07:07:44 UTC Trying to start task. Sending task to slave scheduler qkapp01.dc.com 2019-09-05 07:07:43 UTC Changing task state to Triggered
0 Likes
rohitk1609
Master
Master

 qkapp01.dc.com what is you set it Master only ?

0 Likes
Contributors
Version history
Last update:
‎2019-06-07 08:30 AM
Updated by: