Configure Dundas BI on Load Balancer

Hello,
I want to ask if anybody here in the cube have ever tried Dundas BI over LB, we have a case where we configured Dundas on two servers using LB, both servers are mapped to one instance which is installed on SQL cluster of two servers.

We have noticed that the LB does not balance the load correctly between the two servers.

  1. We had 40 sessions at same time in our environment.
  2. We noticed that the 40 sessions are mapped to one server in the LB. we catch this since one server was very slow and the other server had no load at all
  3. We stopped the loaded server from LB and the whole 40 sessions moved to second server and it became very slow.
  4. Once we make the first server online in the LB , then session just stayed on second server and they were not balanced between the two servers !!

In this case we don’t see that we got the value of LB to balance the load. Is there any specific configuration to balance the load on Dundas instances.

I noticed that LB actually look to the load of worker process of dundas on any server to measure if is loaded or not, but actually the load here is not in Dundas BI worker process since in our case the worker process is not loaded in term of CPU and memory and the slowness is in queue of requests to the data source in Dundas that will increase as we have more and more sessions opening at same time.

In same subject of my issue. if my Dundas BI today is capable to handle 20 sessions at same time without any slowness , and I want to open more sessions without having any performance issue. My question, what i have to do as structure or configuration in Dundas or any mechanism to make my Dundas bi capable to handle 100 session without performance issues or even make it capable be able to handle 1000 sessions simultaneously without any performance issue like i want to make Dundas BI accessible on our public website. Memory engine is one option but this can save me extra sessions but not as long term solution to this case.

1 Like

Very good question, but also the perspective from which you analyze the case.
I had the same problem and I am very curious regarding the answers.

The way the load is distributed between the 2 serves typically depends on the rules on you define at the load balancer level and usually has nothing to do with Dundas BI. The only requirement that Dundas has for load balancing is that you use session affinity (also known as sticky sessions). For example, you can setup a load balancer rule that will route traffic using a round robin logic where each server should get a new session at a time. If this is what you did and you still get all the sessions routed to the same server we will probably need to better understand how you configured it. This is out of scope of Dundas BI as each instance can be deployed with different type of load balancers but we will be happy to try and help as much as we can. In case it helps, the Dundas BI documentation about load balancing is available here.

As for the performance - there are of course many different factors that will determine the load you could have on an instance such as the hardware, network settings, data sources, data models, as well as the volume of the data and the complexity of the dashboard or report. That means that there is no one magic answer to the steps you should take to optimize the performance. My recommendation to this is to start by trying to find the biggest offenders on your performance and then optimize those to the max. Then keep on going with the next one on the list and then the next one and so on. In most cases the load is coming from the data side and so looking at your slowest dashboards/reports [performance measurements] and and try to optimize that (https://www.dundas.com/Support/learning/documentation/appendix-troubleshooting/viewing/viewing-performance-measurements). A good starting point for that would be the following article.
If you have no idea which dashboards are slow or often being used in your instance, the you can look at the performance tracking and usage tracking dashboards and get a good indication there.

1 Like

What algorithm of Load Balancer uses the Dundas BI application?

@costin.manea - as I mentioned in the earlier post above, Dundas BI doesn’t include a built-in load balancer. That is by design so you could use the load balancer of choice for your organization. Within your load balancer you would define the load balancing rules that would suit your needs. Most load balancers support a round robin routing rule but you can also choose other rules depending on the load balancer you use.

1 Like

Good point @ariel.pohoryles.1! Thank you!

Hello Ariel,
Thank you for sharing the valuable information with us.

I have couple of questions about enhancing dundas performance.

  1. Why when there slowness in getting data from data source, the whole application become slow like opening a dashboard or just even when login to dashboard from different sessions.
    While we are monitoring Dundas BI worker process in IIS and how it handles the requests from clients, We noticed that the getData requests are handled along with other dundas requests like open new dashboard just clicking on any thing.

  2. Is it a bad practice in dundas BI to open many dashboards in many tabs in chrome in same session , each tab with a dashboard from same workstations. I feel that if one seasion is overloaded in such way the whole app server become slow.

  3. I noticed a case on iis worker process that one client for some reason took around 40 seconds to get data in one request and this affect other opened sessions to be slow for a while.

  4. Is there any good practices to configure dundas in IIS or MS SQL or leaving them un default is enought.

1 Like
  1. If there is a lot of activity from users doing very intensive tasks, such as rebuilding data models, this could cause a slowdown if there is not enough CPU or RAM to serve all the current requests. During any observed period of slowness, you should check Task Manager on the Dundas BI server to see what kind of load is happening, and where the bottleneck may be.

  2. No, this is not a bad practice. If you’re finding that this is bringing your system to a crawl, it’s possible that your data queries could take advantage of being stored in-memory or in your Dundas data warehouse DB.

  3. This kind of goes along with #2. If queries are taking a long time, you should investigate using data cube storage. If you’re already doing that and it’s still slow, Dundas Support or Professional Services may be able to work with you to narrow down the root cause and propose the proper solution.

  4. The Dundas installer does set up some parameters already for the Dundas DB as well as the Dundas application pool in IIS, but those usually don’t need to be modified.