If you look beyond the CPU and Mem, you're going to 'likely' hit a Disk IO limitation as your next bottleneck. At your current metric collection levels, assuming 5min collection is still used (default), your required IOPs is 14100 IOPs between the two VMs. This is a lot of IO.
Give the size of your deployment (very large), for improving performance you can:
1. Increase your CPU, Mem, and DIsk IOPs configuration. Usually Disk IOPs will be the limiting factor in this size deployment.
2. Reduce your metrics collection levels by reducing the quantity of metric collecting. This is done by switching to optimized attribute package and/or the default attribute packages. Also, if you're collecting from other GA adapters other than VMware vCenter you can examine those areas to trip down unwanted resources/metrics using filters or optimize attribute packages.
If you want to reduce the load in your system's DT processing, another method is to reduce the quantity of data being processed. The more historical data you have, the more buckets it needs to process. So what this means is, if you were to reduce your data retention from 6 months to 3 months, you'd have less load on Analytics VM for DT processing. Not to mentioned the lower disk space demand. If you've got such a large scale deployment, you need to decide if you want to have 3 months of data running properly or 6 months of data running improperly (incomplete DTs).. again if your Disk IO is so bound this might not even be enough.
Also, another suggestion is to upgrade to vC Ops 5.8 if you haven't already. 5.8 started implementing a newer DT calc algorithm that is a little more efficient.. every bit counts when you've got a large scale deployment.
Another suggestion is to change your DT processing time to begin the night before instead of early AM to allow more time for DT processing. So the default DT proc time is 1AM, which you could change to ~8-9PM to allow a few extra hours to process before you start using it in the AM.
When was the last time the DT process actually 'finished' on it's own? Look at the vC Ops resources, check the Analytics tier, and check the DT processing metrics to see when it was running and finished up own.
I recommend opening up a ticket with GSS to talk about this and get their thoughts. With a deployment your size, they'll bring a different perspective to the table and usually have a few engineering-sourced tips and tricks up their sleeves to tweak settings for 5-million-metric deployment optimization. However, before you start pulling in GSS I'd suggest checking your own end and ensure you've got the adequate resources provisioned (cpu,mem,disk io).