This is an interesting question and I'd love to see some hard data on this!
My understanding (and this is based on < 10.5) is that scale up is preferred, especially if you already have high availability - scale out in theory should have more overhead. But on the other hand if you are currently RAM or disk I/O bound on those existing workers, then it might be better to scale out....it just depends on what your current resource utilisation looks like.
But both options should improve capacity/concurrency, just not necessarily faster response times unless you are resource-bound with your current core count.
I prefer to scale up then scale out since adding more workers introduces more chances for network latency and hardware issues.
In your case, it may be better to add more VizQL processes to existing nodes since it's responsible for rendering and executing queries. This article maybe helpful: https://viziblydiffrnt.wordpress.com/2016/01/12/what-drives-tableau-server-load/
1 of 1 people found this helpful
Ah, the million-dollar-question! In my opinion Tableau needs to put a lot more love into Tableau Server "behind the scenes" documentation to help us admins figure out what's best for our environment beyond the "try this and if it doesn't work then try that" approach They're kinda getting there but far too slowly. While internal technology changes (e.g. Hyper) can change the formula that is not a reason to be lacking in this area, particularly when Tableau is getting further into the enterprise solution space!
We went from a primary of 4 cores (back when we had to hike up hill in the snow to configure the Tableau Server) to 8 cores to 16 cores to 24 cores to our current 16-primary/8-worker (24-core license).
- From 4 to 8 cores was a minor improvement in all aspects but we were not being heavily used and, honestly, not monitoring the server environment much anyway (remember, only the public.views were available to the common server admin).
- 8 to 16 cores, with backgrounders going from 4 to 8 was a HUGE improvement in our heavy extract environment.
- Adding another 8 cores (24 cores total) but leaving everything the same didn't make a noticeable improvement in the eyes of the end users.
- However, by moving 8 cores to a worker node and having 16 on the primary did help improve rendering speed to the end user. Not huge...but noticeable.
- I'm thinking about moving another 8 cores to a new worker -- thus having a primary and two workers -- to handle viz rendering or
- Moving some cores to the existing worker and increasing the backgrounders accordingly or
- Move 8 cores to a new worker and increasing the backgrounders accordingly, thus having a primary and two workers
So, as you can see, it depends on your what your environment's main task is (rendering or extracting/subscriptions or both). Now that 10.5 has Hyper you should really, really, really consider how that will affect the Tableau Server ecology, specifically extracts & subscriptions...I know it's something I'm flailing about upon due to the lack of documentation in how the Tableau Server services & processes work and interact.