Hey Jamie -
Not being a wise-***, but the answer is "yes - all of that".
Adding VizQL processes will only help when too many requests to render a report come in at the same time and they start queuing because there is no "free" VizQL to immediately start working.
Complexity of the workbook will cause a VizQL to take longer to do layout / rendering / filtering. For sure.
Lots of RAM allows us to bring more data into memory if you're using extracts, which improves query performance.
What sort of timeouts are you seeing? I suspect the you have one or two reports which timeout from time to time while the others are OK?
Much of the time, timeouts are query related - the backend data source is taking too long to answer the question Tableau asks it, and we give up. What happens when you run the "timing out" reports in Tableau Desktop on the Server machine? Are they still relatively slow?
Consider that each Vizql process can handle addressing up to 4GB of RAM (v7.0.4 and >)
Lets say 'beefy' = 32GB of RAM
You have 2Vizql processes. That's a lot of beef just sitting on the block, untouched.
tdeserver64 however can consume 64bit address space and it *could* get hungry.
Watch your processes to know what you need and when to reconfigure: http://kb.tableausoftware.com/articles/knowledgebase/monitoring-tableau-server-performance
Caching is on a 'per process' basis. Slamming your server with more processes than it needs reduces cache hit rate(not measurable by any simple means at this time).
For those considering an installation on the low end, minimum, of the tech specs, consider that there is a considerable amount of RAM used before any work is done. A system with 8GB or RAM is needed for server views to several users. The absolute minimum is too small for the default install, put everything down to 1 process for your 'hello world'. http://www.tableausoftware.com/products/server/specs
Thank you both, that was extremely helpful