Workload Management through Node Roles
Using node roles, you can configure where certain types of workloads are processed on your Tableau Server installation. The node roles features allows you to dedicate and scale resources to specific workloads. You can configure node roles for Backgrounder and File Store.
The Backgrounder node role specifies the type of background tasks that should run on a node, whereas the File Store node role specifies the type extract workload that should run on a node. Both node roles are specified at a node level. Although these node roles can work independently to optimise selected workload, the two node roles in combination can be used to specialise server nodes to preferentially execute selected workloads to optimise performance extract heavy workloads. This combination is discussed in more detail later in the File Store node roles section.
Backgrounder node roles
The Backgrounder process runs Tableau Server tasks, including extract refreshes, subscriptions, flow tasks, ‘Run Now’ tasks and tasks initiated from tabcmd. Running all these tasks can use a lot of machine resources. If you have more than one Backgrounder node in your cluster, you can manage your Backgrounder workload by specifying the type of tasks a Backgrounder can run on a node using the Backgrounder node role feature.
This configuration option is currently available only through TSM CLI commands and is only useful on multi-node clusters. If you have only one node, the Backgrounder is set to run all tasks by default and that cannot be changed.
Using Backgrounder node roles
The Backgrounder node role feature is intended to give you more control and governance over where certain type of Backgrounder workloads are processed in your Tableau Server installation and allows you to dedicate and scale resources to specific workloads.
For example, if your deployment is heavy on extract and users are running a lot of extract refreshes or encryption jobs, it could be beneficial to dedicate a node to extract refreshes. Similarly, in the case of subscriptions, if your Tableau Server installation processes a lot of subscriptions and you want to ensure that other jobs do not take resources from subscriptions, then you can dedicate a node to subscriptions. In these cases, you would also want to dedicate other backgrounder nodes to workloads other than extract refreshes or subscriptions.
To support high availability, Tableau recommends having multiple nodes that are dedicated towards a specific workload. For example, if you dedicate a node to extract refreshes, you should also configure a second node to process extract refresh workload. This way if a node dedicated to extract refreshes becomes unavailable, extract refreshes can still be processed by the other node.
Configuration options
Configuration | Jobs |
all-jobs (default) | All Tableau Server jobs |
flows | Flow run jobs. |
no-flows | All jobs except flows. |
extract-refreshes | Jobs that are created for: Incremental refreshes, full refreshes, encryption and decryption of all extracts including extracts that flow outputs create. |
subscriptions | Subscription jobs |
system | System maintenance jobs that interact with other Tableau Server processes. For example, cleaning crashed jobs, reaping database events and syncing Active Directory. |
extract-refreshes-and-subscriptions | Extract-refreshes, encryption and decryption of all extracts including extracts that flow outputs generate, and subscription jobs. |
no-extract-refreshes | All jobs except extract-refreshes, extract encryption and decryption of all extracts including extracts created from flow outputs. |
no-subscriptions | All jobs except subscriptions. |
no-extract-refreshes-and-subscriptions | All jobs except extract-refreshes, encryption and decryption of all extracts including extracts created from flow outputs, and subscriptions. |
no-system | All jobs except system maintenance jobs. |
For more information on how to use the tsm commands to set the node role, see tsm topology.
Note: Making configurations to node roles require a restart of the server and will require some downtime. For more information, see tsm pending-changes.
Licence requirements
Configuring a node to do only a specific type of tasks, like, flows, extract refreshes and subscriptions, you must have one of the following licences activated on your Tableau Server:
To configure a node to run flows, you must have a valid Data Management licence activated on your server and have Tableau Prep Conductor running on that node. To learn more about Tableau Prep Conductor, see Tableau Prep Conductor.
To configure a node to run extract refreshes, subscriptions and any combination related to extract refreshes and subscriptions you must have a valid Advanced Management licence activated on your Tableau Server. If the licence expires or is deactivated, you will see an error any time you make a change to the Server configuration. For more information on Advanced Management. see About Tableau Advanced Management on Tableau Server.
Important!
While flows, extract refreshes and subscriptions can be expensive and resource heavy, they are not the only jobs that may require dedicated resources. In the all jobs group, there are a variety of System jobs that the Backgrounder executes, such as thumbnail generation for workbooks. Make sure that the nodes that run jobs other than extract refreshes, subscriptions or flows have enough machine resources.
For more information on configuring node roles using TSM commands, see tsm topology set-node-role.
Considerations
There are some rules you must consider when configuring Backgrounder node roles, which are listed below:
Only one node role configuration can be set for a node at a time. You cannot configure multiple node roles on a node.
To configure a node role, there must be at least one Backgrounder process on that node.
If you have only one Backgrounder node, you must configure this node to run all jobs. This is the default configuration and does not require additional licensing.
If you have more than one Backgrounder node, combined, they must be configured to handle all jobs. This can be achieved in the following ways:
Configure one of the nodes to run all jobs using the all jobs option. This is the easiest and most straightforward way.
Using one of the exception configurations on one of the nodes:
- no-flows
- no-subscriptions
- no-extract-refreshes
- no-extract-refreshes-and-subscriptions
For example, in a cluster where there are three backgrounders, you could have one node configured to run flows, one to run subscriptions and extract refreshes and one to run all jobs except flows, subscription and extract refreshes.
Note: The ability to specify node roles to run flows, or run all jobs except flows, or run all jobs was introduced in 2019.1.
File Store node roles
The Tableau Server File Store controls the storage of extracts. There are three broad categories of workloads that are extract dependent.
Extract Workload | Execution Service |
Refresh | Backgrounder |
Query | Data Engine |
Backup/Restore | Backup/Restore |
File Store node role management in combination with Backgrounder node role management gives server admins the ability to specialise server nodes to preferentially execute selected workloads to optimise performance of all categories of extract heavy workloads.
It is possible to specialise a node to execute extract query workloads through a topology that has only stand-alone Data Engine nodes. For more information, see Optimise for Extract Query-Heavy Environments. However, this is at the expense of extract refresh workloads, which are executed by Backgrounder nodes. With the topology-based isolation approach, extract refresh heavy Backgrounder workloads can get slower as none of the Backgrounder nodes have a File Store and thus all extract refresh traffic goes over the network.
With the File Store Node Role configuration option, it is possible to designate certain server nodes that process extract queries to be preferentially selected from the list of server nodes that can do so. This helps speed up workloads such as backup and extract refreshes by allowing server admins to enable File Store on Backgrounder server nodes, which prevents extract queries from running on these nodes. This feature is useful if you have an extract-heavy query workload and an extract-heavy refresh workload and want to achieve optimal extract query and refresh performance.
Guidelines to optimise for extract refresh and backup or restore workloads.
Start from a topology with specialised Data Engine nodes (see Optimise for Extract Query-Heavy Environments).
Note: In the below diagram and procedure, node 1 is Initial Node, node 2 is Additional Node 1, node 3 is Additional Node 2 and node 4 is Additional Node 3.
- Add File Store to Node 1.
tsm topology set-process -n node1 -pr filestore -c 1
- Designate Node 3 and Node 4 to preferentially execute extract-query workloads
tsm topology set-node-role -n node3, node4 -r extract-queries
- Designate Node 1 to preferentially execute extract-refresh workloads.
tsm topology set-node-role -n node1 -r extract-refreshes
- Designate Node 2 to preferentially execute non-extract-refresh workloads.
tsm topology set-node-role -n node2 -r no-extract-refreshes
- Apply pending changes.
tsm pending-changes apply
Note: In your Tableau Server deployment, adding File Store roles to existing nodes will temporarily increase network I/O between all File Store nodes while the new File Store is being synchronised. The duration of this operation is dependent on the volume of data on the File Store and the network bandwidth capacity. The status of synchronisation can be monitored using the TSM Web GUI. If you are adding more than one File Store to your deployment, it is recommended to add them consecutively and wait for the initial synchronisation to complete in between each File Store addition.
Fine tune extract query workload management
When extract queries for email subscriptions and metric alerts are running at the same time that users are interactively viewing extract-based visualisations, users may experience slower than normal viz load times. Use the following node roles to fine tune how these workloads are prioritised.
Node role to use | Type of extract query workload | Example |
extract-queries | scheduled | email subscriptions and metric alerts |
extract-queries-interactive | interactive | users viewing an extract-based visualisation |
If your server deployment is seeing growth in email subscriptions and metric alerts, you can add nodes and assign the extract-queries
node role, which makes them more available to handle subscriptions and alerts.
If your server deployment is seeing growth in users viewing extract-based visualisations, you can add nodes and assign the extract-queries-interactive
node role, which makes them prioritise interactive extract queries to reduce extract-based viz load times. The extract-queries-interactive
node role is a preference and not strict isolation. This means that queries will be routed to nodes that have the extract-queries-interactive
node role assigned. If you have multiple nodes with the extract-queries-interactive
role, queries will be routed based on node health.
For example, add a node and designate it to preferentially execute extract-queries-interactive
workloads.
tsm topology set-node-role -n node4 -r extract-queries-interactive
Configuration options
Configuration | Jobs |
all-jobs (default) | All Tableau Server jobs |
extract-queries | Jobs that are created for extract queries. The nodes selected will run as all-jobs and will prioritise the processing of extract queries. |
extract-queries-interactive | Jobs that are created for extract queries. The nodes selected will run as all-jobs and will prioritise the processing of interactive extract queries, such as those that run when a user is looking at their screen and waiting for an extract-based dashboard to load. This is an advanced setting and it should only be used if the cluster has a heavy subscription and alert job workload that causes users to experience degraded performance on viz load times that run around the same time as scheduled loads. |
For more information on configuring node roles using TSM commands, see tsm topology set-node-role.
Licence requirements
To configure a node to run extract queries you must have a valid Advanced Management licence activated on your Tableau Server.
How to see node roles
Use the following command to see what node roles are currently configured on Tableau Server:tsm topology list-nodes -v
Who can do this
Tableau Server Administrators can configure node roles and activate any required product keys.