TabJolt Installation Guide
TabJolt Installation Guide
What is TabJolt?.........................................................................................................................................................3
When to use TabJolt.................................................................................................................................................3
Download package contents ................................................................................................................................3
Prerequisites ..............................................................................................................................................................4
JAVA ...........................................................................................................................................................................4
Tableau Desktop...................................................................................................................................................4
Postgres ...................................................................................................................................................................5
Configure Postgres ...................................................................................................................................................5
Install and configure TabJolt ................................................................................................................................6
Configure for metrics collection ....................................................................................................................6
Choose your workload............................................................................................................................................7
Populate vizpool.csv ...........................................................................................................................................8
Choose your load mix .........................................................................................................................................8
Manage user login................................................................................................................................................9
Run a TabJolt test................................................................................................................................................... 10
Analyze results........................................................................................................................................................ 10
Additional Resources and Feedback .............................................................................................................. 12
Known Issues and Troubleshooting .............................................................................................................. 13
2
Tableau—TabJolt Installation Guide April 2015
What is TabJolt?
TabJolt is a point and run load generator built on top of JMeter that is specifically designed
for Tableau Server. It is available as a free download as-is from GitHub.
Unlike traditional load testing tools, TabJolt can drive load against your Tableau Server
without you having to develop or maintain scripts. TabJolt is optimized for the Tableau
presentation model and can load visualizations and interpret possible interactions during
test execution.
TabJolt is a subset of our engineering load testing framework and we are making it available
in hopes that it allows you to accelerate production go-live with Tableau Server, and also to
help you with planning your specific on-site capacity needs.
Of course, running load tests does not replace understanding the Tableau Server
architecture and following best practices for deployment during load testing. Treating
Tableau Server as a black box for load testing is not recommended, and will probably yield
unexpected results. For information about the Tableau Server architecture, see the Tableau
Server Administration Guide.
1. I want to deploy a brand new Tableau Server. How will Tableau Server scale on my
hardware and with my workload?
2. I am moving from Tableau Server 8.x to version 9.0. Given my workbooks and
hardware, how will Tableau Server 9.0 scale in my environment?
4. I need to complete a load test as part of go-live testing for Tableau Server. How do I
accelerate the time it takes to do a full load test?
3
Tableau—TabJolt Installation Guide April 2015
postgresDBSchemaPart2.sql Creates the schema for the performance results for use
with TabJolt and necessary data.
Prerequisites
To install and use TabJolt, you need a Windows machine with a minimum of two cores with
8 GB or more RAM. As a best practice, you should monitor this machine for CPU and
memory to ensure that your test runs don’t create a bottleneck on the load injector.
You must also have downloaded the complete package as described above.
JAVA
If you don’t have a recent, working version of JAVA, you need to install the latest version.
We recommend you install the x64 bit version of JAVA, as TabJolt requests an allocation of
2GB RAM at start up. If you cannot use x64 bit JAVA see the trouble shooting section below
for workarounds.
You can get the latest JAVA installation and instructions at this website:
http://java.com/en/download/manual.jsp
Tableau Desktop
If you already have Tableau Desktop 9.0 or later, you can simply use that. If you don’t, you
can download a free trial version from this website:
http://www.tableau.com/products/desktop
4
Tableau—TabJolt Installation Guide April 2015
Postgres
TabJolt uses a Postgres database as its performance result store. To ensure that the running
your tests doesn’t impact your Tableau Server, this should not your Tableau Server Postgres
instance. Instead, you should install a standalone version of Postgres on the same machine
where you are installing TabJolt.
NOTE: During Postgres installation, make sure that the database superuser password is set
to testresults
Download and install the latest Postgres from the following website:
http://www.enterprisedb.com/products-services-training/pgdownload#windows
If you are running Postgres over a Remote Desktop Session, the install splash screen might
not appear and the installer might not run. If this happens, navigate to the installation file
from an elevated command prompt and then run the installer from the command prompt.
In some cases, we found that the easiest way to install Postgres is to use the default install
path—changing the defaults might prevent your Postgres installation from completing in
some cases. For help on Postgres, you should review community posts on the Postgres
forums.
Configure Postgres
To configure Postgres, you must execute the Postgres SQL scripts that you downloaded
(described in the preceding table) in the order that is specified in their file name.
1. Open the administration tool PGADMIN III, which is installed as part of the Postgres
installation.
2. Select one of the databases to launch the SQL query execution UI from PGADMIN III.
3. After you open the SQL query execution UI, open and run the
postgresDBSchemaPart1.sql script.
5
Tableau—TabJolt Installation Guide April 2015
Next, connect to the newly created database (PerfResults) and then run the second script,
postgresDBSchemaPart2.sql, which creates the schema and necessary users to allow
TabJolt to run.
hostName: http://yourhost
TabJolt can collect both Windows performance metrics (perfmon) data and JMX data from
Tableau Server very easily.
TabJolt includes a set of perfmon metrics out of the box. You can add your own by updating
the c:\tabjolt\config\dataretriever.config file. In the <hosts> </hosts> section, you can
specify the hosts (with the applicable counters) that you want to collect performance
counters from.
6
Tableau—TabJolt Installation Guide April 2015
JMX metrics
JMX metrics give you better visibility into the performance of key server processes under
load. To enable JMX data collection, ensure that JMX is enabled on Tableau Server (by
default it is disabled) and update your c:\tabjolt\config\dataretriever.config file.
To enable collection of JMX metrics on Tableau Server, run the following tabadmin
commands:
tabadmin stop
tabadmin configure
tabadmin start
<!--enable the following section only after you jmx counter for
tableau-->
<!--
<applicableCounterGroup>vizqlserver</applicableCounterGroup>
<applicableCounterGroup>dataserver</applicableCounterGroup>
<applicableCounterGroup>vizportal</applicableCounterGroup>
-->
First, pick the set of workbooks you want to test. To point TabJolt to your workbooks and
visualizations, ensure the target workbook is published to Tableau Server.
7
Tableau—TabJolt Installation Guide April 2015
Populate vizpool.csv
IMPORTANT: You must remove the “#” in the URL path and add a ‘magic number’ at the end
of the URL. It doesn’t matter what the number is, but should be unique across all the
numbers in your vizpool.csv.
For example, if your view URL in the browser looks like this:
http://localhost/#/views/WorldIndicators/GDPpercapita?:iid=1
/views/WorldIndicators/GDPpercapita/25
As you can see, we removed the http://localhost, the “#” and added “25” as our magic
number.
IMPORTANT: Before you further scale your load tests, you must ensure that a single user
test on this workbook performs within your expectations. If not, you should optimize the
workbook by following best practices for workbook authoring.
The workload mix that really matters for Tableau Server scale testing is not how many
people are logged into the sever, but how many users are concurrently loading and
interacting with visualizations.
To that end, we have provided the following two load mixes out of the box. Choose the one
that best meets your needs.
InteractVizLoadTest.jmx
ViewVizLoadTest.jmx
These load mixes are located in the testplans directory under the main install location. The
underlying JMeter execution engine uses them, so you should not edit or change them.
For the interaction mix (InteractVizLoadTest.jmx), TabJolt selects the URLs for the views,
which you have provided in vizpool.csv file, based on a uniform distribution. Then it tries to
load the view. After the viz is loaded, TabJolt checks whether the viz has any elements that
allow interaction with the view (such as a slider bar, drop-down menu, and so on). If the
8
Tableau—TabJolt Installation Guide April 2015
view has interaction elements, TabJolt performs those interactions without requiring script
development. If the view doesn’t have any interactions, TabJolt selects marks on view.
The ViewVizLoadTest.jmx, on the other hand, simply loads the visualization without doing
any interactions.
You can specify the load mix you want on the command line using the --t command line
parameter.
The command line parameter --d is the test run duration in seconds, and --c is the
number of virtual users (clients) that you want TabJolt to use.
User login and logout requests are handled by the Application Server component of Tableau
Server and do not follow the execution path to VizQLServer, which services end user
requests. TabJolt allows you to either leverage the built-in guest account, or specify a
synthetic test user during test execution.
To use the built-in guest account, you must have a CORE server license, and you should have
configured guest access on your server by checking the Enable Guest account option in
your administration area on the Tableau Server General Settings page (shown below). You
can then use TabJolt to stress or load-test Tableau Server using workbooks or visualizations
that you have designed and developed for your users by using the built-in guest account.
However, if you want to use a test user to log in to server and then access the visualization,
you must set up TabJolt to use a specified test user account. To provide a test user name for
login, you need to provide user name and password in
c:\tabjolt\config\ServerTestConfig.yaml for Tabjolt to use.
9
Tableau—TabJolt Installation Guide April 2015
com.tableausoftware.test.server.configuration.User
This user can be an active directory user or a local Tableau Server user. The user must be
valid and active. If you don’t add a user name, TabJolt tries to use the built-in guest account
and fails if you don’t have your guest access set up correctly.
At the end of the run, on the command line, you will get the run ID, which you need to use as
a filter when you analyze your data in Tableau Desktop.
You should explore all the options with the go command. If you expect to do a lot of runs,
you should give your runs a useful description, by using the command --r followed by the
description for the run.
Analyze results
After the run is finished, open the analysis workbook located at
c:\tabjolt\PerformanceViz.twb using Tableau Desktop from the same computer. You
10
Tableau—TabJolt Installation Guide April 2015
must provide the user name and password for your TabJolt Postgres repository that you
installed above (remember, this is not your Tableau Server repository).
You can view the test results and review each of the worksheets.
Figure 4: Tableau Desktop showing the results captured from a test run.
Analyzing your load test data is as exploratory as working with any data with Tableau.
TabJolt has some key worksheets as starting point. Standard KPI metrics like response
times, test cases per second (TPS), host metrics, and JMX metrics (if configured) appear in
the workbooks automatically.
A test case is defined as either a “view” or an “interact” test case as described above. These
parent test cases might have many child test steps to run. For example, as part of loading a
new view, we might create a bootstrap session for the view, get a customized view, or
perform operations after the load. These are a subtests of the parent test case:
When you look at these results, you can quickly find patterns and check how your workload
is behaving under load.
11
Tableau—TabJolt Installation Guide April 2015
Before proceeding with a larger scale test, best practice is to ensure that your workbook is
optimized for a single user. If your workbook takes a very long time just for one user, you
should either follow best practices on how to author workbooks for performance or request
Tableau to help.
Figure 5: Tableau Desktop showing test drill down from a test run.
You can also post questions or comments in the forum for the Server Administration
Community on Tableau.com.
12
Tableau—TabJolt Installation Guide April 2015
To solve this, you need to either move to an x64 bit JAVA installation, OR
increase RAM in your system, OR update the heap requirement to suit your
environment constraints with an aim to maximize the memory available to
TabJolt.
C:\tabjolt\bin\jmeter.bat
3. Why am I getting the following error (or similar) when starting TabJolt?
For example, if your view URL in the browser looks like this:
http://localhost/#/views/WorldIndicators/GDPpercapita?:iid=1
/views/WorldIndicators/GDPpercapita/25
As you can see, we removed http://localhost, “#” and added “25” as our
magic number.
13