Dynamic process resourcing with Tableau Server for Linux

One of the coolest features with the Linux version of Tableau Server is the ability to dynamically add and remove additional Tableau Processes to your running instance of Tableau Server.

The cool feature is that we can dynamically add these without the need to stop/start Tableau Server.  However only if the node is already a member of the cluster and already has one of these process types running.

Think of the flexibility you now have to dynamically adapt your Tableau Server infrastructure to accommodate your corporate wide analytics.

Architectually, Tableau Server runs multiple components (processses) which can be tweaked to adapt to your environment.  In a lot of cases the defaults work fine for most environments, and as a result they’re a great baseline to work off.

Some of the processes shown in the architecture diagram below can be increased/decreased and/or moved to additional nodes if you have a multi-node setup to optimize Tableau Server in your environment.

Snag_dcfc15

The section in the online help talks to this in more detail and what to look for, including the tuning examples baseline.

At a high level this a good guide for when to look at adding nodes and reconfiguring the processes on your Tableau Server (quoted below):

  • More than 100 concurrent users: If your deployment is user-intensive (>100 simultaneous viewers), it’s important to have enough VizQL processes—but not so many that they exceed your hardware’s capacity to handle them. Also, enabling the Tableau Server Guest User account can increase the number of potential simultaneous viewers beyond the user list you may think you have. The administrative view can help you gauge this. For more information, see Actions by Specific User.
  • Heavy use of extracts: Extracts can consume a lot of memory and CPU resources. There’s no one measurement that qualifies a site as extract-intensive. Having just a few, extremely large extracts could put your site in this category, as would having very many small extracts. Extract heavy sites benefit from isolating the Backgrounder process on its own machine.
  • Frequent extract refreshes: Refreshing an extract is a CPU-intensive task. Sites where extracts are frequently refreshed (for example, several times a day) are often helped by more emphasis on the background process, which handles refresh tasks. Use the Background Tasks for Extracts administrative view to see your current refresh rate.
  • Downtime potential: If your server system is considered mission critical and requires a high level of availability, you can configure it so there’s redundancy for the server processes that handle extracts, the repository, and the gateway.

So lets get to tweaking!

Taking stock of our default installation and process/node configuration, the command below gives us a break down of the nodes and the processes running on each.

tsm topology list-nodes -v

 

Snag_1405bb.png

The above is a single-node 64-Bit Tableau Server 10.5 running in CentOS7.  You’ll note the additional processes which match the default recommendations from performance tuning examples on the online help.

… and how it looks from Status -> Server Status -> Process Status in the web-interface.

Snag_157e90.png

Lets say after some testing and evaluation we need to optimise our environment by increasing the VizQL server process and the number of backgrounders to assist with Extract refreshes.

It’s always good to check and see if there are any pending-commands yet to be applied to the Server.

tsm pending-changes list

…gives us a list of any changes currently in the queue to be applied to the server.

Snag_1ba286.png

The example above shows I am increasing the number of backgrounder processes from 2 to 4 and the number of vizqlserver processes from 2 to 4 also.  All of this is to be applied on ‘node1’ i.e. the first (and only) node in this example.

Entering the commands below will adjust the number of processes running on node1:

tsm topology set-process -n node1 -pr backgrounder -c 4
tsm topology set-process -n node1 -pr vizqlserver -c 4

A quick view of the pending changes:

tsm pending-changes list

Snag_1f3d40.png

The above shows what’s currently in the queue to be applied to the server.

To apply the changes to the server, initiate the command:

tsm pending-changes apply

Tableau Services Manager (tsm) will then apply the configuration to the running Tableau Server.

Snag_207246.png

A quick view in the web-based interface shows the addition of the new processes.  The red ‘X’ indicates that Tableau has increased the process counts and is in the process of starting them up.

Snag_21152d.png

…after a few minutes the processes will go ‘green’ indicating that the additional processes are now running on the node supporting your workload.

Snag_22875b.png

enjoy…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s