Core Considerations for Tableau 9 Server Deployment
Tableau version 9 released this week in both Desktop and Server versions, as well as Online and Public getting updates also.
We’ve made a number of enhancements to Server to improve overall performance and user experience. One of these is that from version 9 onwards we will be enforcing the minimum install requirements so that we can help ensure a consistent and responsive user experience.
For CPU cores, in Tableau Server 9 64-bit the absolute minimum is 4-cores, and Server 32-bit is 2-cores. That said we recommend 8-cores for any production Tableau Server.
If you try to install on a server that doesn’t meet the minimum specs you will receive a message like:
Verification result: FAILED Setup cannot continue because the system does not meet minimum requirements. Please make sure that the system meets the minimum recommended Tableau Server requirements
The full list of minimum requirements is here: http://www.tableau.com/products/techspecs
When we say cores we are mean actual physical core and not a hyper-thread / vCPU / Logical CPU etc. If you’re installing Tableau Server and unfamiliar with hyper-threading the basic concept is that it allows multiple computations to share the same processor core; each core will be presented as 2 Logical or Virtual cores.
More reading can be found:
In virtualized or hosted environments this requires some understanding of how the guest will see provisioned CPU’s and not all environments report cores equally; understanding this aspect will make Tableau Server upgrades smoother.
Note: one way to get an idea of what Tableau should detect during install is to run the following in PowerShell:
WMIC CPU Get DeviceID,NumberofCores, Numberof LogicalProcessors
Amazon Web Services (AWS) EC2
There are a large range of instance types and sizes for AWS. For the instances that are capable of running Tableau Server one thing is common among all of them:
Each vCPU is a hyperthread of an Intel Xeon core for M3, C4, C3, R3, HS1, G2, I2, and D2. Source EC2 Instance Types
Therefore the minimum required vCPUs to run Tableau 64-bit us 8x vCPUs, not 4x vCPU’s as it may appear.
VMware ESXi / vSphere
In vSphere the guest operating system only ever sees cores as physical, it doesn’t matter if Hyper-Threading is enabled or not, or if a thread is scheduled to run in a hyperthread.
However the CPU scheduler in VMware is intelligent and will try to spread load from multiple guest machines equally across physical cores first before consuming hyperthreads.
Therefore unlike AWS EC2 assigning 4 cores to a vSphere guest will allow Tableau Server 64-bit to install.
Additionally as vSphere schedules work physical cores in preference over hyperthreads then the performance impact of running Tableau Server on a vSphere Host with Hyper-Threading enabled may be a non-issue. However this will definitely be dependent on the overall workload on the vSphere environment (i.e. higher workloads should see more work sharing physical cores / using hyper-threads) and a best practice would be to test performance of Tableau Server and increase resources as needed.
Hyperthreaded hosts might affect virtual machine performance, depending on the workload. The best practice is to test your workload to determine whether to enable or disable hyperthreading on your hosts. Source Virtual CPU Limitations
Note that it is possible to change Hyperthreaded Core Sharing to determine how or if a guest will share a physical-core with other guest VM’s (or itself). However as VMware does a great job of CPU scheduling I would consider these settings as advanced and best changed after consultation with your internal VMware expert or VMware presales contact.
In summary for the 64-bit Server:
AWS – Each vCPU is a hyper-thread. You need 8x vCPUs to meet the minimum install requirements or 16 vCPU to meet the recommended production requirements.
VMware – Testing and user feedback is important. Physical cores and hyper-threads look the same to the guest VM. 4x Cores will allow Tableau Server 64-bit to be installed, 8x Cores for the minimum recommended production requirements. The CPU scheduler will try to run threads on a free physical core, but will depend on the workload.
I recommend reading the following blogs by Russell Christopher to learn more about Tableau in virtual environments. These are still just as valuable reads for V9 as they were for V8.