Folks here is a quick set of tips to keep in mind when designing Tableau Server architecture. Following Ravi’s post on hardware requirements, let’s understand the basics!
VizQL is a core component that queries data sources when a view is opened in Tableau, consecutively rendering graphical information to the user, and consumes a vast amount of CPU and memory. Another key component that can be heavy on CPU(/network) is backgrounder as it is responsible for refreshing scheduled extracts, and running tabcmd installation utility tasks though it does not use memory.
So an IT question that would naturally arise is:
Q. How can I limit the CPU use of VizQL or Backgrounder?
A. It is possible to tweak the processes but it is better to isolate Tableau hardware in at least 3 nodes described below.
The reasoning behind this design is…
1) Keep Licensing on its own in the Administrator Server since it is the single point of error for the entire node configuration and is therefore vital not to put it alongside heavy CPU using processes which could potentially fail the whole system.
2) Ideally Backgrounder should be on its own so it can consume 100% of the CPU resources.
3) VizQL should be on nodes that are not running background processes because it can use as much CPU as needed – and include one application server per VizQL.
4) Data engine‘s performance is limited to CPU so it is highly recommended to separate from backgrounder – again include one engine per VizQL.
5) It is important to include 2 separate Repositories in different nodes so that if one fails, the other can act as a backup.
(Note there are 13 Server unique components – I am only highlighting isolated processes)
On a final note, with this set up you are ready for scaling up! Good luck.